重复键忽略?

伙计们我试图完成这个查询 – >我的标记字段设置为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索引的新行具有相同的值,则在插入新行之前删除旧行