MySQL的插入对重复键; 删除?(MySQL insert on duplicate key;

2019-07-30 10:29发布

是否有在MySQL重复键删除记录的方式吗?

假设我们有与特定主键数据库中的记录,我们尝试添加使用相同的密钥另一个- ON DUPLICATE KEY UPDATE只会更新记录,但如果有已经存在删除记录的选项? 这是一个按钮的点击简单的输入/输出功能。

Answer 1:

这是一个变通办法,但它的工作原理:

创建一个新的列,并调用它do_delete ,或什么的,使其成为一个微小的-INT。 然后做On Duplicate Key Update do_delete = 1;

根据您的MySQL版本/连接上,就可以在同一个语句执行多个查询。 然而,如果没有,只是运行一个单独的查询立即后记。 无论哪种方式,下一个查询将只是: Delete From [table] Where do_delete = 1; 。 这样,如果它的一个新的条目,它不会删除任何东西。 如果它不是一个新的项目,它将然后将其标记为删除,那么你可以将其删除。



Answer 2:

使用REPLACE INTO :

replace into some_table
select somecolumn from othertable

要么插入新的数据,或者是否存在THR相同的数据将删除数据,并插入一个新



Answer 3:

对于相同的最近的可能的解决方案是REPLACE语句。 下面是用于替换文件 。

类似的问题,有人问MySQL的论坛和建议(只)的答案是使用REPLACE



Answer 4:

是的,当然还有MySQL中的解决方案,为您的问题。

如果你想删除或跳过插入新记录,如果已经存在重复记录在表中的键列存在,您可以用忽略这样的:

insert ignore into mytbl(id,name) values(6,'ron'),(7,'son');

这里id列是表的主键mytbl 。 这将通过删除或跳过新的重复记录插入表中的多个值。

希望这将满足您的要求。



文章来源: MySQL insert on duplicate key; delete?