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

MySQL Workbench导入CSV文件未导入全部行问题求解

MySQL Workbench导入CSV行数缺失排查方案

核心排查点(按出现概率从高到低排序)

  • 字段类型不匹配导致静默丢行
    你当前建表语句中Invoice_Date字段设置为DATE类型,但UCI在线零售数据集的原始发票日期为MM/DD/YYYY HH:MM格式的带时间字符串,既不符合MySQL默认识别的YYYY-MM-DD日期格式,精度也超出DATE类型仅存储日期的范围。Workbench导入向导默认开启忽略无效值行配置,遇到类型不匹配的行不会抛出任何报错,会直接静默丢弃,这是最常见的丢行原因。
    修正方式:先将Invoice_Date字段类型修改为DATETIME,导入时手动指定日期解析格式匹配源数据规则,或先用VARCHAR(50)类型存储该字段,导入完成后再做格式转换。
  • 换行符格式不兼容
    Mac环境下从xlsx转换得到的CSV文件,大概率使用老式CR(\r)作为换行符,而Workbench导入向导默认仅识别LF(\n)、CRLF(\r\n)换行,遇到CR换行时会将多行内容识别为单行,触发字段数不匹配规则后直接丢行。
    修正方式:用VS Code、Sublime等纯文本编辑器打开CSV文件,在右下角状态栏将换行符格式切换为LF,重新保存后再导入。
  • 特殊字符转义配置错误
    原始数据集的Description字段包含大量逗号、双引号、单元格内硬回车,如果导入向导中没有正确配置字段包裹符、转义符,会出现字段错位,导致后续行的字段数量和表结构不匹配被丢弃。
    修正方式:导入向导的字段配置步骤中,手动指定分隔符为逗号、字段包裹符为双引号"、转义符为双引号",不要使用默认的反斜杠作为转义符。
  • Mac端Workbench内存限制bug
    Mac版本MySQL Workbench存在已知的导入进程内存限制问题,即便在偏好设置中调整了导入行数上限,导入进程默认分配的JVM运行内存仅为512MB,通常导入到7-8万行时就会因为内存不足静默终止,无任何报错提示。
    修正方式:在应用程序文件夹找到MySQL Workbench.app,右键选择「显示包内容」,打开Contents/Info.plist文件,找到VMOptions配置项,将其中的-Xmx512M参数修改为-Xmx2048M,保存后重启Workbench即可。

零丢行导入替代方案

直接使用MySQL原生LOAD DATA命令导入,绕开Workbench GUI导入的所有已知bug,参考代码如下:

-- 先开启本地文件导入权限
SET GLOBAL local_infile = 1;

-- 执行导入,注意将文件路径替换为你本地CSV的实际存放路径
LOAD DATA LOCAL INFILE '/your/local/path/OnlineRetail.csv'
INTO TABLE Online_Retail
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS -- 跳过CSV第一行表头
(InvoiceNo, Stock_Code, Description, Quantity, @Invoice_Date, Unit_Price, Customer_ID, Country)
SET Invoice_Date = STR_TO_DATE(@Invoice_Date, '%m/%d/%Y %H:%i');

注意:执行上述命令前,需要编辑当前MySQL连接配置,在高级选项页勾选「Allow local file access」,否则会报本地文件读取权限错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 15:39:16