一、需求
当我们对数据库中某一个主键字段值是否存在,来进行添加或修改操作时,我们往往将这个逻辑放到代码中,这次我们将用sql来实现.
二、实战
数据表:
其中我们id字段主键
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/595819c0810513f71d64dbe16a021f1b.png)
当我们执行如下sql:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c00cbcc398a03ca3764eaacff74a7bc2.png)
查询结果
执行成功了!
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/17fb3ed0c1a9dfcac31f37acaa599e8a.png)
查看数据表
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/eab51802176094a14c6245cd83364598.png)
我们发现了id=4的house_id、user_id更新了而id=5的数据插入了
ON DUPLICATE KEY UPDATE 会根据主键冲突,或者唯一主键冲突来判断,存在的进行更新,不存在进行插入操作.
注意:更新时返回的影响数据行时不准确的,如果表中有多个唯一索引要避免使用
ON DUPLICATE KEY UPDATE