You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法将CSV文件导入MySQL:两种导出格式下的报错求助

解决方案

问题1:UTF-8 CSV导入时整数列被识别为带BOM的字符串

错误根源:Excel保存的UTF-8 CSV会在文件开头添加UTF-8 BOM(字节顺序标记),MySQL默认不处理该标记,导致第一行的整数字段被带BOM的字符串污染(如'1')。

解决步骤:

  • 在LOAD DATA INFILE语句中明确指定字符集为utf8mb4;若CSV包含表头行,添加IGNORE 1 LINES跳过。
  • 修正后的SQL命令:
LOAD DATA INFILE 'mountainData.csv'
INTO TABLE mountains
CHARACTER SET utf8mb4
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES; -- CSV第一行是表头时启用

问题2:普通CSV导入时description字段编码错误

错误根源:Excel默认导出的普通CSV(非UTF-8)使用Windows本地编码(多为GBK),与MySQL表的utf8mb4编码不兼容,导致字符解析失败。

解决方法二选一:

  1. 转换文件编码:用记事本打开CSV,选择「另存为」,编码选「UTF-8」(不要选「UTF-8 BOM」),保存后用问题1的命令导入。
  2. 指定原编码导入:在SQL中明确文件的原编码(如GBK):
LOAD DATA INFILE 'mountainData.csv'
INTO TABLE mountains
CHARACTER SET gbk
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;

关键注意事项

  • 换行符匹配:Windows系统CSV的换行符是\r\n,必须在LINES TERMINATED BY中指定,否则会导致description里的换行被误判为行结束符,引发字段错位。
  • 特殊字段包裹:确保ENCLOSED BY '"'生效,Excel导出时会自动用双引号包裹含逗号、换行的字段(如description),若未自动包裹,需手动编辑CSV确保该字段被双引号完整包裹。
  • 字段长度校验:确认description varchar(2000)能容纳最长的描述内容,避免导入时截断或报错。

内容的提问来源于stack exchange,提问作者Jason Thuma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 18:35:32