MySQL从csv文件导入,带有字符异常

时间:2011-11-10 11:10:37

标签: mysql csv import

我正在尝试使用以下查询将CSV文件导入MySQL表:

LOAD DATA INFILE 'C:\\machines.csv'
INTO TABLE `machines` 
CHARACTER SET latin1
FIELDS TERMINATED BY ','
  OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 0 LINES;

但是它会出现以下错误

  

1406-第10334行的'technicalInfo'栏数据太长了

似乎问题是该行在technicalInfo列中包含字符。

是否可以在查询中删除/替换此字符?

(NB显然另一个解决方案是将其从csv文件本身中删除。问题是我很可能每天多次导入此文件的不同版本,所以我宁愿将其构建到查询中。)

2 个答案:

答案 0 :(得分:1)

问题是{1'字符在latin1字符集中不可用,这就是您收到错误的原因。你能否将字符集更改为utf8并查看是否仍然遇到问题?

[1] MYSQL错误1406详情:http://bugs.mysql.com/bug.php?id=18908

答案 1 :(得分:0)

您可以更改或删除该符号,例如 -

LOAD DATA INFILE 'C:\\machines.csv'
INTO TABLE `machines` 
CHARACTER SET latin1
FIELDS TERMINATED BY ','
  OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 0 LINES
(column1, column2, @var1) -- specify column names here
SET column3 = REPLACE(@var1, '⌀', ''); -- replace it with '!'