码迷,mamicode.com
首页 > 数据库 > 详细

SQL:插入更新主键相同的行的所有其他列

时间:2016-05-19 13:13:33      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

在写SQL中,我们经常遇到这样一类问题。每一次插入的时候都要判断数据表中是不是已经存在这条数据,所谓相同数据,是除了主键以外全部列都相同,没有则插入,有则更新。在这种情境下,我们并不清楚知道这一列是否存在,所以单纯的插入和更新都有问题,于是有的人选择了删掉对应id,然后全部重新插入,这里遇到的问题就是,主键自增,删掉了会产生巨大空洞,并不是个好的设计。

 

在MySQL下,我采用的方法是:

insert into case_law (case_id,laws_id) (select 1,2 from dual where not EXISTS (select case_id,laws_id from case_law where case_id=1 and laws_id=2)

如上简单手段就可实现插入的时候检查是否存在。

SQL:插入更新主键相同的行的所有其他列

标签:

原文地址:http://www.cnblogs.com/toocooltohavefriends/p/5508262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!