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

MySQL批量Upsert语法错误咨询:多列更新写法问题排查

MySQL批量Upsert语法错误排查与修正

核心语法错误

  • ON DUPLICATE KEY UPDATE子句中,VALUES()函数的参数必须是字段名,而非具体的插入值。你错误地将批量插入的具体值传入VALUES(),导致MySQL无法解析语法。
  • UUID作为触发重复键冲突的唯一键字段(需提前设置唯一约束),冲突时无需重复赋值,保持原值即可。

修正后的SQL语句

insert into testDB (`UUID`,`description`,`created_at`,`updated_at`)
values ('6','test 6a',now(),now()),('7','test 7a',now(),now())
on duplicate key update
description = VALUES(description),
updated_at = now();

关键说明

  • VALUES(description)表示取当前插入行中description字段的值,用来更新冲突行的对应字段;
  • created_at作为记录创建时间,冲突时无需修改,保留初始创建值即可;
  • updated_at直接用now()更新为当前时间,无需通过VALUES()传递;
  • 必须确保UUID字段已设置唯一约束(UNIQUE KEY或PRIMARY KEY),否则ON DUPLICATE KEY UPDATE逻辑不会触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 11:25:58