CSV文件导入Mysql Workbench 6.3中的错误

时间:2016-05-18 14:08:48

标签: csv import mysql-workbench

我是Mysql的新手,并且正在使用它来使用我拥有的几个非常大的CSV文件(有些行超过一百万行)。我在Win7-64旗舰版上。我安装了MySql Workbench v.6.3.6 build 511 64 bit。我读了一个类似的问题但是我不能发表评论,因为我是新人。无论如何,我得到了一个不同的错误。

我已经建立了一个名为crash0715的数据库,并创建了一个名为driver_old的表,其中包含五列。第一列是报告编号(设置为INT(20)),它将键入其他文件。它包含一些重复项,具体取决于其他列中的数据。接下来的四列包含1或2位数字数据。

我将report_number列设置为INT(20),主键,而不是null。 其他4个设置为INT或INT(2)

当我尝试通过GUI导入5列CSV文件(在我的c:\ root中名为do.csv)中的超过100万行时,程序挂起。我让它运行了12个小时,我的任务经理显示该程序使用了25%的CPU。

我接下来尝试了命令行。切换到数据库后,我用了     LOAD DATA LOCAL INFILE' c:/do.csv' INTO TABLE driver_old FIELDS TERMINATED BY','包含在'"'终止于' \ n';

在尝试两次导入之前,我已从CSV中删除了标题行。

我收到以下消息:     QUERY OK,111行受影响,65535警告< 3.97秒>记录:1070145已删除:0跳过:1070034警告:2273755

我阅读了SHOW WARNINGS的前几行,它们如下: 1264列' report_number'超出范围值第1行 1261第1行不包含所有列的数据

对所有其他行重复这两个。

还有一个 1062重复输入' 123456789'关键'主要' (123456789是代表值)

它也与其他两个代码重新发生。

CSV文件在第一列上没有空格,但在其他列中有一些空白。

知道我在这里做错了吗?

3 个答案:

答案 0 :(得分:0)

我会使用 bigint int 的内容!

插入忽略或替换可能有助于复制主键值!

LOAD DATA LOCAL INFILE' c:/do.csv' 忽略/替换 INTO TABLE driver_old FIELDS TERMINATED BY','包含在'"'终止于' \ n';

我无法对这个问题发表评论,但是如果您可以将网址发布到显示来自csv文件的几行并且代码如何创建表格和插入数据的图片,那就太棒了!这对回答这个问题非常有帮助!

答案 1 :(得分:0)

我现在已经成功导入了1045767条记录。正如另一位成员在此建议的那样,我导入了一个小的100行文件,它给出了同样的错误。然后我在Libre Office打开了csv并保存了它。我能够导入它。

问题在于电子表格程序GS-Calc。保存csv文件时,它提供三个选项:UTF-8,UTF-16和ANSI / OEM / ISO。我最初将其保存为UTF-8并返回错误。

我将其保存为ANSI / OEM / ISO并且可以导入OK。我希望将来可以帮助其他人使用大型csv文件。

答案 2 :(得分:0)

我通过保存并导出sql插入语句解决了这个问题