mysql特殊语法--更新不重复创建
实际开发中,我们经常会遇到这样的需求,在日常开发中,经常会遇到这样的需求:查看某条记录是否存在,不存在的话创建一条新记录,存在的话更新某些字段。正常我们会这样处理,先查询有没有,然后在insert。针对这个需求,mysql提供了更加方便的指令
1
insert into ... on duplicate key update ...
在insert的时候,如果insert的数据会引起唯一索引(包括主键索引)的冲突,不会执行insert操作而是执行后面的update。
- 如果不存在记录,插入,则影响的行数为1;
- 如果存在记录,可以更新字段,则影响的行数为2;
- 如果存在记录,并且更新的值和原有的值相同,则影响的行数为0。
This post is licensed under CC BY 4.0 by the author.