1

MySQLでは、次のようにLOAD DATALOCALINFILEを使用します。

LOAD DATA LOCAL INFILE 'code.csv' 
INTO TABLE MyDB.code FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' LINES TERMINATED BY '\r\n' (code_id,code_name,code_date);

次のような応答があります。

クエリOK、1行が影響を受け、2つの警告(1.80秒)レコード:665893削除:0スキップ:665892警告:1

私はUbuntuを使用しており、MySQLはローカルホストで実行されています。LOAD DATA LOCAL INFILEコマンドがこれらのレコードをスキップする原因は何ですか?

4

2 に答える 2

1

行が実際に \r\n で終了していることを確認しましたか? また、適切な CSV をエクスポートしましたか、それともコンマ区切りだけですか? 値が (指定したように) 適切に引用されていない場合、インポートの問題が発生する可能性もあります。

改行仕様を試して削除することをお勧めします。

LOAD DATA LOCAL INFILE 'code.csv' INTO TABLE MyDB.code FIELDS TERMINATED BY ',' ENCLOSED BY '"' (code_id,code_name,code_date);
于 2013-03-21T14:43:44.640 に答える
0

テーブルに一意の制約がある場合、LOAD DATAコマンドはその制約に違反する行をスキップします。

問題の図: https://stackoverflow.com/a/20913896/445131

これを修正するには、そのテーブルの一意の制約を削除するか、テキスト ファイルでその制約に違反している行を削除します。

于 2014-01-03T22:50:36.383 に答える