SQL的INSERT IGNORE用法
INSERT IGNORE
和 ON DUPLICATE KEY UPDATE
在处理插入操作中遇到唯一键冲突时有着不同的行为:
-
INSERT IGNORE:当使用
INSERT IGNORE
时,如果插入的数据中存在与现有记录的主键或唯一键相同的值,则 MySQL 会忽略该条记录的插入,而不会引发错误。换句话说,如果冲突发生,MySQL 将简单地跳过这条插入语句,不执行任何插入或更新操作,也不会返回错误。 -
ON DUPLICATE KEY UPDATE:相比之下,
ON DUPLICATE KEY UPDATE
在发生主键或唯一键冲突时会执行指定的更新操作。这意味着如果插入的数据中存在与现有记录的主键或唯一键相同的值,则 MySQL 将尝试更新现有记录,而不是简单地忽略或跳过插入操作。您可以在ON DUPLICATE KEY UPDATE
子句中指定要执行的更新操作。
因此,虽然两者都用于处理唯一键冲突,但它们的行为方式是不同的。INSERT IGNORE
主要用于在不想处理冲突时忽略插入操作,而 ON DUPLICATE KEY UPDATE
则用于在发生冲突时执行特定的更新操作。