你的位置:首页 > 软件开发 > 数据库 > SQL:插入更新主键相同的行的所有其他列

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

发布时间:2016-05-19 13:00:02
在写SQL中,我们经常遇到这样一类问题。每一次插入的时候都要判断数据表中是不是已经存在这条数据,所谓相同数据,是除了主键以外全部列都相同,没有则插入,有则更新。在这种情境下,我们并不清楚知道这一列是否存在,所以单纯的插入和更新都有问题,于是有的人选择了删掉对应id,然后全部重新插 ...

在写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)

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

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

关键词:sql

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。