这个问题在这里已经有了答案:





“INSERT IGNORE” vs “INSERT … ON DUPLICATE KEY UPDATE”

(12 个回答)


8年前关闭。




我正在尝试完成此查询;我的标签字段设置为 UNIQUE,我只是希望数据库忽略任何重复的标签。

INSERT INTO table_tags (tag) VALUES ('tag_a'),('tab_b'),('tag_c')
ON DUPLICATE KEY IGNORE '*the offending tag and carry on*'

甚至这是可以接受的
INSERT INTO table_tags (tag) VALUES ('tag_a'),('tab_b'),('tag_c')
ON DUPLICATE KEY UPDATE '*the offending tag and carry on*'

最佳答案

建议不要使用 INSERT IGNORE,因为它会忽略所有错误(即它是一个草率的全局忽略)。
相反,由于在您的示例中 tag 是唯一键,请使用:

INSERT INTO table_tags (tag) VALUES ('tag_a'),('tab_b'),('tag_c')
ON DUPLICATE KEY UPDATE tag=tag;
在重复键上产生:

关于mysql - 在重复键忽略?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2366813/

10-16 16:13