在执行INSERT包含许多行的语句时,我想跳过可能导致失败的重复条目.经过一些研究,我的选择似乎是使用:
ON DUPLICATE KEY UPDATE 这意味着需要花费一些不必要的更新,或者 INSERT IGNORE 这意味着邀请其他类型的未能在未经宣布的情况下失败. 我对这些假设是对的吗?简单地跳过可能导致重复的行并继续执行其他行的最佳方法是什么?
我需要的是使用特定键设置记录的所有字段的值(键实际上是复合键),如果没有带有这样键的记录则插入记录.
REPLACE似乎意味着要做的工作,但同时它的手册页建议
INSERT ... ON DUPLICATE KEY UPDATE.
我应该更好地选择什么?为什么?
REPLACE我想到的唯一"副作用" 是它会增加自动增量值(幸运的是我不使用任何),而INSERT ... ON DUPLICATE KEY UPDATE可能不会.要记住的其他实际差异是什么?在哪些特定情况下可以REPLACE优先考虑INSERT ... ON DUPLICATE KEY UPDATE,反之亦然?