1

在 MySQL 中,我使用 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 在 localhost 上运行。是什么导致 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 回答