LOAD DATA INFILE - mySQL错误代码:1261。第1行不包含所有列的数据

时间:2014-02-08 20:32:51

标签: mysql

我正在利用LOAD DATA INFILE导入大量的CSV文件(~30 GB)。有些字段没有数据,因此我收到以下错误代码:

Error Code: 1261. Row 1 doesn't contain data for all columns

由于其大小,我宁愿不先尝试编辑CSV文件。我曾尝试使用DEFAULT NULL为具有空白字段的列重新创建表但是我仍然得到相同的错误。感谢任何有关解决方案的帮助。

这是创建表

#c.execute("CREATE TABLE dns_part2_b (date VARCHAR(15), time VARCHAR(25), ip1 VARCHAR(20), ip2 VARCHAR(20), dns VARCHAR(150), arec VARCHAR(10), wsa VARCHAR(10) DEFAULT NULL)")

LOAD DATA命令

LOAD DATA INFILE '/Volumes/data/mycsv.csv' INTO TABLE dns_part2_b FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 LINES;

这是一个不完整记录的例子:

date,time,ip1,ip2,dns,arec,wsa
2013-07-01,00:00:14.301038+00:00,1.1.1.1,2.2.2.2,domain.com,A

和一个完整的

date,time,ip1,ip2,dns,arec,wsa
2013-07-01,00:00:12.335246+00:00,2.2.2.2,1.1.1.1,WPAD,NB,(WS)

谢谢!

1 个答案:

答案 0 :(得分:1)

每一行都必须有相同数量的逗号。

date,time,ip1,ip2,dns,arec,wsa
2013-07-01,00:00:14.301038+00:00,1.1.1.1,2.2.2.2,domain.com,A,

如果缺少dns字段,那么它将是(例如)

2013-07-01,00:00:12.335246+00:00,2.2.2.2,1.1.1.1,,NB,(WS)