create table test(a int,c int);
insert into test(a,c) values(1,3) on duplicate key update c=c+1;
如果INSERT多行记录(假设 a 为主键或 a 是一个 UNIQUE索引列):
insert into test(a,c) values(1,3),(1,7) on duplicate key update c=c+1;
执行后, c 的值会变为 4 (第二条与第一条重复, c 在原值上+1).
insert into test(a,c) values(1,3),(1,7) on duplicate key update c=values(c);
执行后, c 的值会变为 7 (第二条与第一条重复, c 在直接取重复的值7).
这个语法和适合用在需要 判断记录是否存在,不存在则插入存在则更新的场景
时间: 2024-10-14 18:29:28