mysql中[ON DUPLICATE KEY UPDATE]使

2020-12-06  本文已影响0人  DragonersLi
测试表结构
新建一个test表,字段有ID,mobilecountcreate_timeupdate_time 当我们执行insert插入数据时会提示Affected rows: 3, Time: 0.094000s,同样数据再次执行会提示1062 - Duplicate entry '1' for key 'PRIMARY', Time: 0.133000s
insert into test (id,mobile,count,create_time) 
values
(1,'18888880000',1,1595555555),
(2,'18888880001',2,1595555555),
(3,'18888880002',3,1595555555);
Mysql提示主键冲突,可不可以改变一下思路,当插入已存在主键的记录时,将插入操作变为修改?
insert into test (id,mobile,count,create_time) 
values
(1,'18888880000',1,1595555555),
(2,'18888880001',2,1595555555),
(3,'18888880002',3,1595555555)
on duplicate key update count =count + values(count),update_time = values(create_time);
执行完毕提示:Affected rows: 6, Time: 0.326000s,影响了6行,实际是插入变成更新,更新了已存在的3条记录的countupdate_time字段值。
当执行的插入的数据不存在则插入(影响1行记录),存在则为更新(影响2行记录),存在记录和更新记录相同则不更新(影响0行记录)。
上一篇 下一篇

猜你喜欢

热点阅读