我知道如果发生复制异常,我可以使用ON DUPLICATE KEY UPDATE,然后在MySQL中执行无操作操作,但是有没有更有效的方法?
发布于 2011-03-08 07:04:56
INSERT IGNORE INTO tableName ....请参阅Docs
发布于 2015-04-03 05:26:46
虽然这是真的,但我发现做INSERT IGNORE会在你的自动递增ids中造成漏洞。具体地说,如果执行INSERT IGNORE操作时与当前行发生冲突,则不会写入任何数据(这是您想要的),该表的auto_increment值将递增1。
如果你像我一样迷恋毒品,自动递增列上的洞会杀了你。所以我倾向于不这么做。我只是做一些像这样的事情:
INSERT INTO TABLE (column list) VALUES (value list) ON DUPLICATE KEY UPDATE random_column = random_column这成功地完成了一个no-op。这纯粹是一个风格问题,但我认为这种方法更简洁。
https://stackoverflow.com/questions/5226343
复制相似问题