我知道我可以使用 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/