upsert(update or insert), 即更新或写入。
MySQL中实现upsert操作方式:
思路:通过判断插入的记录里是否存在主键索引或唯一索引冲突,来决定是插入还是更新。当出现主键索引或唯一索引冲突时则进行update操作,否则进行insert操作。
实现:使用 ON DUPLICATE KEY UPDATE
insert into demo(a,b,c,d,e,f) values(1,1,1,2,2,2) ON DUPLICATE KEY UPDATE a=2,b=2,c=3,d=4,e=5,f=6;
因为已经存在由abc三列组成唯一索引数据:1,1,1,本次又写入demo(a,b,c,d,e,f) values(1,1,1,2,2,2),会造成唯一索引冲突。
因此,会触发ON DUPLICATE KEY 后面的 UPDATE a=2,b=2,c=3,d=4,e=5,f=6操作。
至此,已经实现upsert功能。请记住 ON DUPLICATE KEY UPDATE的用法。
https://blog.csdn.net/u011250186/article/details/108142230