mysql加载数据infile它包含的数据比输入列多

时间:2017-03-23 03:49:51

标签: mysql csv

我是mysql的新手,我尝试将csv文件加载到mysql。 csv喜欢:

1,"a,b"
2,bc
3,d

这样的表:

create table test(ind varchar(10),var varchar(20));

当我加载此csv文件时:

load data infile 'test.csv' into table test
fields terminated by ',' ;

我改变了这个 警告:

  

第1行被截断:它包含的数据多于输入列   我试试这个:

load data infile 'test.csv' into table test
fields terminated by ','
optionally enclosed by '"'

它没有用。

" a,b"导致此错误。但我不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:11)

听起来LOAD DATA可能没有正确接听您的换行符。尝试将LINES TERMINATED BY ...添加到您的通话中:

LOAD DATA INFILE 'test.csv' INTO TABLE test
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'         -- use '\n' if on Linux
(ind, var)

通过上面的调用,MySQL不应该将第一个引用的术语"a,b"中的逗号视为字段分隔符,而只是该列文本的一部分。