2016-11-04 3 views
0

既存のテーブルを挿入するカラムがいくつかありますが、いくつかのカラムには "how、using、list、file"というような内容があります。 "、"で区切られています。どのようにデータをインポートするためにinfileを使用しますか?いくつかのフィールドにロードデータを使用してデータをインポートする方法

+2

これは、mysql、mssql、oracle、sybase、db2、pgsqlのいずれを使用するかによって大きく異なりますか? SQLタグを追加したときに、同じ警告が表示されませんでしたか? – rene

答えて

0

あなたは使用しているデータベースを指定していませんでしたので、mysqlについてお答えします。 thisを参照してください。

そのようなファイル内の行は、キャリッジリターン/改行のペアで終了している場合は、ここで示した文は、ファイルをロードするために使用するフィールド - とラインハンドリングのオプションを示しています

LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;

ページダウン

、さらに:フィールド値内ENCLOSED BY文字の

出現は、それらを付けることによってエスケープされますESCAPED BY文字。また、空のESCAPED BY値を指定すると、誤ってLOAD DATA INFILEで正しく読み取れない出力が生成される可能性があります。たとえば、エスケープ文字が空の場合、直前の出力は次のようになります。

1,"a string",100.20 2,"a string containing a , comma",102.20 3,"a string containing a " quote",102.20 4,"a string containing a ", quote and comma",102.20

だから、あなたは""内側の列をエスケープを解除した場合、これらのデータはありませんでした:4行目の2番目のフィールドは、フィールドを終了するために表示される(誤って)、引用符、次のカンマが含まれていることを確認して一般的なケースでインポートすると、正しいENCLOSED BY文字を使用してデータをエクスポートするか、ファイルを前処理して"を最初にエスケープする必要があります。

カラム内に,がある場合は、簡単ですが、ENCLOSED BYTERMINATED BYを使用する必要があります。

+1

Tks、それは私のために働く。 – wei

関連する問題