MySQL 从具有字符异常的 csv 文件导入

标签 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- Data too long for column 'technicalInfo' at row 10334

问题似乎是该行包含一个 technicalInfo 列中的字符。

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

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

最佳答案

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

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

关于MySQL 从具有字符异常的 csv 文件导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8078598/

相关文章:

php - 在 Twig 文件之间导入内容

r - 如何将 R "network"对象转换为 "igraph"对象?

mysql - CakePHP HABTM 关系

MySQL AUTO_INCREMENT 无法更新

python - 在Python中合并两个csv文件

c# - 如何在 c#.net 中检索 csv 文件的编码?

java - 如何从Java数组列表中消除空的csv记录?

android - 为什么我不能将现有项目导入 Eclipse?

PHP MySQL + 基于表单选择创建搜索查询

php - 获取错误外键违规