2017-06-09 9 views
0

csvファイルのデータをDBのテーブルに追加したいが、そのテーブルにはファイルより多くの列が含まれている。クエリは、いくつかの列がcsvファイルで満たされ、いくつかの列がクエリの特定の値で満たされるようなものでなければなりません。私のCSVファイルには、各行に "value1、value2"の形式でデータが書き込まれています。私は3つの列を含むテーブルにデータを追加したいと思います。最初の2つの列はファイルのデータで埋められ、3番目の列は値「1」でなければなりません。多くの列を含むmysqlテーブルにcsvファイルのデータを挿入する

LOAD DATA LOCAL INFILE 'target_file' 
INTO TABLE table_name FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '\"' 
LINES TERMINATED BY '\n' (col1,col2); 

答えて

1

あなたは3番目のフィールドのデフォルト値は「1」とマークして、csvファイルをインポートすることができます。これまでのところ私はcsvファイルからのデータでテーブルの2列を埋める次のクエリを持っています。または、csvファイルに含まれていないフィールドをnullableとしてマークしてから、ヌル値を更新するクエリを実行することもできます。

+0

私はもっと一般的なものを探していました。時には値が "2"になることがあります。したがって、私はクエリ内のこの列の値の仕様の方法を探していた。 – enu

+0

私はそのような一般的なアプローチが存在するかどうかはわかりませんが、私は一般にC#またはjavaを使用してコードブロックの小さな部分を書き込み、ファイルを処理してSQLを手動で実行します。あなたは、フィールドを調べてプログラミング言語を使ってファイルを処理し、制約を使って3番目のフィールドを生成し、上記のコードを実行することができます。あなたは何とかあなたのファイルを実際に変換することができます。 – ali

関連する問題