我正在使用mysqlimport提取一个csv文件。

这是我使用的命令:

mysqlimport --ignore-lines=1 --fields-terminated-by=, --columns=$COLUMNS  --lines-terminated-by="\n" \
        --verbose --local --fields-enclosed-by='"' --host=$HOST --port=$PORT \
        --user=$USERNAME --password=$PASSWORD ${DATABASE} $FILE_PATH


在开始该过程之前,我将表截断了,并且该表没有任何唯一索引。

源文件有7288362个记录(开始时我以为csv行中可能包含换行符。我做了检查,但fileds中没有加引号的换行符)。

但是,当mysqlimport完成时,它说“记录:7288300删除:0跳过:0警告:43730142”。

当我登录mysql并从MyTable中进行选择count(*)时,它也给了我7288300。

有任何想法吗?

谢谢!

最佳答案

我的csv文件中有这种行:

1345235,62,"Theme From \Shaft\""""",,Chris Davis & Kim Waters,,,,,,5,0,,,,,,,,,,2016-10-28,,,,2016-10-28,,Y,,,,,,0,‌​2016-10-28 09:09:39


那里的多引号引起了问题。当我添加--fields-escaped-by=''时,它起作用了。

关于mysql - mysqlimport保持丢失的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40334892/

10-12 21:14