这个问题在这里已经有了答案:
“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/