2013-03-21 77 views
1

在MySQL中我使用LOAD DATA LOCAL INFILE這樣的:LOAD DATA LOCAL INFILE裝載僅有一條記錄

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); 

我得到這樣的迴應:

查詢行,1行受影響,2警告(1.80秒) 記錄:665893刪除:0跳過:665892警告:1

我使用Ubuntu和MySQL是在本地主機上運行。什麼導致LOAD DATA LOCAL INFILE命令跳過這些記錄?

回答

1

您的驗證行是否被\ r \ n實際終止?另外,你是否已經導出了PROPER CSV,或者只是逗號分隔?如果您的值沒有正確引用(如您指定的那樣),那也可能導致導入問題。

您可能想嘗試刪除斷行規格:

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

如果你對你的表中的任何唯一約束,然後LOAD DATA命令將跳過違反該約束的行。

這裏的問題的一個例證:https://stackoverflow.com/a/20913896/445131

爲了解決這個問題,或者刪除該表上的唯一約束,或刪除違反了在文本文件約束的行。