MySQL数据库中primary key重复处理3方案 |
本文标签:MySQL数据库 以下的文章主要向大家讲述的是MySQL数据库中primary key重复时的实际处理方案,我们大家都知道当insert进数据表, 经常会发生唯一key(unique key与primary key)重复时, 会发生duplicate key错误 。 这种情况有三种处理方法, 以下面的数据结构为例子
给加上userid列primary key
插入数据
现在我要插入或者编辑userid为1的记录, 但我不知道里面是否已经存在该记录.
MySQL数据库中primary key重复时的实际处理方案1, 先删除再插入之
MySQL数据库中primary key重复时的实际处理方案2, 使用replace into
这种情况下逻辑是这样的, MySQL先判断记录是否存在, 若存在则先删除之, 再自行insert. 所以你能看到这条语句执行后affected rows是2条(当然前提是你的数据表里userid为1的数据只有1条)
MySQL数据库中primary key重复时的实际处理方案3, 使用
这条语句的affected rows也是2.
当然还有另外的处理方式就是直接用php来实现, 先select出来, 发现没结果则insert, 否则update. 还可以先update, 发现affected rows是0, 则insert.
但明显这俩种办法都没有把工作直接交给MySQL处理效率高 |