mysql - 重复key异常如何No-op?

标签 mysql sql

我知道我可以使用 ON DUPLICATE KEY UPDATE 然后在发生重复异常时在 MySQL 中执行空操作,但是有没有更有效的方法?

最佳答案

虽然这是真的,但我发现执行 INSERT IGNORE 会在您的自动递增 ID 中创建漏洞。具体来说,如果您执行 INSERT IGNORE 并且它与当前行发生冲突,则不会写入任何数据(您想要的),但是该表的 auto_increment 值会递增一个。

如果您像我一样吸毒,自动递增列中的漏洞会要了您的命。所以我倾向于不那样做。我只是做类似的事情:

INSERT INTO TABLE (column list) VALUES (value list) ON DUPLICATE KEY UPDATE random_column = random_column

这成功地执行了空操作。这纯粹是风格问题,但我认为这种方法更简洁。

关于mysql - 重复key异常如何No-op?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5226343/

相关文章:

sql - 输出参数值错误

mysql - 无法使用现有表在 bonfire 中创建模块

mysql - 需要 Netezza 中的标识符吗?

mysql - sql从多个表中获取数据

php - 显示不同的语句,取决于价格变量是否为空

PHP 只显示表中字符串的第一个单词

mysql - 如果表 1 没有结果,则从语句 2 中选择

sql - Oracle:如果表存在

php - 如何从数据库中获取今天生日的人的详细信息?

c# - 使用单个更新查询更改表中的多个值