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

MySQL Workbench导入CSV空值被填0而非Null如何配置

MySQL Workbench CSV空单元格导入为NULL的解决方案

该问题的核心原因是MySQL Workbench的导入向导默认会对CSV空单元格做显式赋值处理,不会触发表字段的默认值规则,因此仅修改字段默认值不会生效,可通过以下方法解决:

方案1:调整导入向导配置(最简便)

  • 导入流程走到「Configure Import Settings」步骤时,勾选Treat empty strings as NULL(部分版本显示为Use existing fields as NULL if field is empty)选项,后续导入的空单元格就会自动识别为NULL写入表。

方案2:修改向导生成的导入脚本(适配旧版本Workbench)

如果你的Workbench版本没有上述勾选项,可通过修改自动生成的导入脚本实现:

  • 导入向导走到最后一步时,不要直接点击完成,选择「Save Script to File」导出自动生成的导入SQL
  • 打开脚本找到LOAD DATA相关语句,在语句末尾追加以下逻辑:
    SET Year = NULLIF(Year, 0), Volume = NULLIF(Volume, 0), x = NULLIF(x, 0)
    
  • 运行修改后的脚本即可完成导入,自动将误写入的0转换为NULL。

方案3:使用原生LOAD DATA语句导入

如果不想依赖可视化向导,可直接写SQL完成导入,自带空值处理能力,示例如下:

LOAD DATA INFILE '你的CSV文件本地路径'
INTO TABLE 你的表名
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS -- 若CSV第一行是表头则保留该行,否则删除
(id, @Year, @Volume, @x)
SET 
  Year = NULLIF(@Year, ''),
  Volume = NULLIF(@Volume, ''),
  x = NULLIF(@x, '');

执行上述语句会直接将CSV中的空单元格识别为NULL写入,不需要后续手动转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:45:02