主键冲突:
比如添加一条记录,但是添加的主键值,已经存在,就会产生主键冲突
解决:
1.忽略:主键值如果存在就不添加
insert ignore into
2.替换,如果存在就替换掉之前的
replace into
3.更新,其实这个是原本需要执行3条SQL语句(SELECT,INSERT,UPDATE),缩减为1条语句即可完成。
即
insert into … ON DUPLICATE KEY UPDATE
如:
mysql> insert into device values (1,‘readonly’,‘yang’) ON DUPLICATE KEY UPDATE status =‘drain’;
上面语句伪代码表示即为:
Query OK, 2 rows affected (0.00 sec)
if (select * from device where devid=1) {
update device set status =‘drain’ where devid=1
} else {
insert into device values (1,‘readonly’,‘yang’)
}
mysql主键冲突解决
最新推荐文章于 2024-08-08 21:33:18 发布