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

如何通过LOAD CSV更新MySQL表多字段值?ON DUPLICATE KEY报错求助

解决LOAD DATA语句中ON DUPLICATE KEY位置无效的问题

错误原因

你的SQL语句违反了MySQL LOAD DATA的语法规范:ON DUPLICATE KEY UPDATE子句必须紧跟在导入字段列表的括号之后,不能单独分隔;同时你更新主键Storenumber的逻辑毫无意义——主键是唯一约束,触发ON DUPLICATE KEY的前提就是该值已存在,更新主键不会产生任何有效变更。

修正后的SQL语句

USE My_Database;

LOAD DATA LOCAL INFILE 'C:/Users/LK/Desktop/Stores_Reno_Update_12.28.23.csv'
INTO TABLE Stores_Master
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS
(Storenumber, Store_Name, Location, region_num, inactive_flag)
ON DUPLICATE KEY UPDATE
  Store_Name = VALUES(Store_Name),
  Location = VALUES(Location),
  Region_Number = VALUES(region_num),
  inactive_flag = VALUES(inactive_flag);

关键调整说明

  • 修正语法位置:将ON DUPLICATE KEY UPDATE直接放在字段列表之后,符合MySQL语法要求,解决位置无效的报错。
  • 更新有效字段:针对需要修正的Location、Store_Name等字段进行更新,用VALUES(字段名)引用CSV中对应列的值,确保修正后的数据覆盖原表错误数据。
  • 字段映射匹配:CSV中的region_num对应原表的Region_Number,更新时明确对应关系。
  • 简化引号写法:将ENCLOSED BY '"'改为ENCLOSED BY '"',MySQL可直接识别双引号,避免转义符带来的潜在问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:32:03