重复键忽略?
伙计们我试图完成这个查询 – >我的标记字段设置为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*'
会build议不使用插入IGNORE,因为它忽略所有的错误(即它是一个马虎的全局忽略)。 相反,因为在你的例子tag
是唯一的关键,使用:
INSERT INTO table_tags (tag) VALUES ('tag_a'),('tab_b'),('tag_c') ON DUPLICATE KEY UPDATE tag=tag;
在重复键上产生:
查询OK,0行受影响(0.07秒)
Mysql有这个方便的UPDATE INTO命令;)
编辑看起来像他们改名为REPLACE
REPLACE与INSERT完全相同,只是如果表中的旧行与PRIMARY KEY或UNIQUE索引的新行具有相同的值,则在插入新行之前删除旧行