解决sql主键冲突

天天见闻 天天见闻 2023-03-15 综合 阅读: 115
摘要:

在数据插入的时候,假设主键对应的值已经存在,则插入失败!这就是主键冲突。
当主键存在冲突(duplicate key)的时候,可以选择性的进行处理,即忽略、更新或者替换。

1.忽略

insert ignore into table

保持原记录,忽略新插入的记录

2.替换

replace into table

替换原记录,即先删除原记录,再插入新的记录

3. 更新

insert into table value('xx','xx')ON DUPLICATE KEY UPDATE

其实这个是原本需要执行3条SQL语句(SELECT,INSERT,UPDATE),缩减为1条语句即可完成。

IF (SELECT * FROM where 存在) { UPDATE SET WHERE ; } else { INSERT INTO; }

如:

mysql> insert into Tble values (1,'xxx','xxx') ON DUPLICATE KEY UPDATE status ='drain'; Query OK, 2 rows affected (0.00 sec)

上面语句伪代码表示即为

if (select * from table where id=1) { update device set status ='drain' where id=1 } else { insert into table value (1,'xxx','xxx') }

很明显,id=1 是有的,这样就执行update操作

mysql> select * from table; +-------+--------+-----------+ | id| status | spec_char | +-------+--------+-----------+ | 1 | drain | yangting | | 2 | dead | zhong | +-------+--------+-----------+ 2 rows in set (0.00 sec)

其他相关
thebrain-computerinterface

thebrain-computerinterface

作者: 天天见闻 时间:2023-06-14 阅读: 77
消息喜忧参半,与此同时,A股脑机接口概念股大涨。...
房遗爱宠妻狂魔\u0027\u0027\u0027宠妻狂魔

房遗爱宠妻狂魔\u0027\u0027\u0027宠妻狂魔

作者: 天天见闻 时间:2023-06-09 阅读: 81
宠妻是现在标准好男人的重要人设,而在堪称中国古代盛世的大唐朝,依然有着不少''宠妻狂魔'',其中最为典型的就是一代名相房玄龄的次子房遗爱。房遗爱宠妻到何种程度呢?可以宠到在妻子高阳公主和情人辩机和尚幽会的时候在旁边把风,这个级别的宠妻可以算骨灰级的了吧?有着这样的一个父亲,房遗爱自然可以算是当时顶级的官二代。因为父亲房玄龄的缘故,房遗爱尚公主。心上人死了,高阳公主怀恨在心。...
u0027\u0027\u0027王耀庆

u0027\u0027\u0027王耀庆

作者: 天天见闻 时间:2023-05-16 阅读: 128
和其他演员从小就有演员梦截然不同的同学跑到导演们那里去“暗暗”“...”之后,广告主觉得他的形象很合适,之后以“阴差阳错”“娱乐”进入演艺圈。他凭借电视剧“水晶花”出道,接着王耀庆凭借在“天下第一美”中的出色表演,有种当时在台湾拍电视剧的“太赶”的感觉。“慢工出细”“王耀庆认为,很多人物角色细节都没有被细细挖掘,所以当红了的时候,他选择了转战舞台剧。”这是为了饰演“浮沉”中的商界精英陆帆。...
刘恺威与姐姐复婚?姐姐:不想再回到过去,在经历一次太麻烦了

刘恺威与姐姐复婚?姐姐:不想再回到过去,在经历一次太麻烦了

作者: 天天见闻 时间:2023-04-20 阅读: 124
让我给你看演艺圈里的东西。娱乐圈大概是观众能看到的最杂乱的圈子了。生活中,不时能看到圈内杂乱无章的事情。姐姐总是人气很高,有传闻说娱乐圈有话题就会有热度,姐姐和魏大勋在一起。魏大勋一直很喜欢姐姐,进入演艺圈是因为姐姐。因为魏大勋在每一个重大场合都不遗余力地向姐姐表达他的爱。人们觉得两者之间的联系并不简单,现在非常受欢迎的迪丽热巴是她旗下的女演员。她与刘诗薇分手并不影响她的职业生涯。...
Linux面试题2:网络IO模型 & IO多路复用

Linux面试题2:网络IO模型 & IO多路复用

作者: 天天见闻 时间:2023-03-17 阅读: 151
当用户进程运行read任务时,内核向用户空间复制数据是否同步,IO复用实际上是一个select/poll/epoll选择器,如果一个线程同时接收多个文件描述符(fd_set),当等待并且文件描述符可以读写时接收通知的linux,处理网络IO连接时linux的优化,每次调用2.Select时,都必须将fd_set集合复制到内核状态。Poll,如果逻辑fd_set为1字节byte,则执行。...
常见的MySQL语句

常见的MySQL语句

作者: 天天见闻 时间:2023-03-15 阅读: 141
...
我来说两句

年度爆文