我正在尝试完成此查询; 我的标记字段设置为UNIQUE,我只是希望数据库忽略任何重复的标记.
INSERT INTO table_tags (tag) VALUES ('tag_a'),('tab_b'),('tag_c')
ON DUPLICATE KEY IGNORE '*the offending tag and carry on*'
Run Code Online (Sandbox Code Playgroud)
甚至这是可以接受的
INSERT INTO table_tags (tag) VALUES ('tag_a'),('tab_b'),('tag_c')
ON DUPLICATE KEY UPDATE '*the offending tag and carry on*'
Run Code Online (Sandbox Code Playgroud)
小智 335
建议不要使用INSERT IGNORE,因为它忽略了所有错误(即它是一个草率的全局忽略).相反,因为在您的示例中tag是唯一键,请使用:
INSERT INTO table_tags (tag) VALUES ('tag_a'),('tab_b'),('tag_c') ON DUPLICATE KEY UPDATE tag=tag;
Run Code Online (Sandbox Code Playgroud)
在重复键上产生:
查询正常,0行受影响(0.07秒)
Byr*_*ock 16
Mysql有这个方便的UPDATE INTO命令;)
编辑看起来他们将其重命名为REPLACE
REPLACE与INSERT的工作方式完全相同,只是如果表中的旧行与PRIMARY KEY或UNIQUE索引的新行具有相同的值,则在插入新行之前删除旧行
| 归档时间: |
|
| 查看次数: |
166894 次 |
| 最近记录: |