MySQL 批量插入数据时如何解决重复问题

MySQL 使用用 insert 插入数据时,为了不重复插入,往往先查询一下数据,若不存在才进行插入操作。

当数据库中存量数据较多时,或者是在批量插入操作时,很容易出现插入重复数据的问题。


解决方法:

在 MySQL 中,当存在主键冲突或唯一键冲突的情况下,根据插入策略不同,有以下三种避免方法:

insert ignore into:若没有则插入,若存在则忽略

replace into:若没有则正常插入,若存在则先删除后插入

insert into ... on duplicate key update:若没有则正常插入,若存在则更新


注意,使用以上方法,需要表中有一个 PRIMARY KEY 或 UNIQUE 约束/索引


例子:

insert into tb_log (id,action) VALUES (200, '111');
replace into tb_log (id,action) VALUES (200, '222');
insert into tb_log (id,action) VALUES (200, '111') on duplicate key update;


声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
真诚赞赏,手留余香
赞赏
随机推荐
WordPress 函数 add_option()、get_option() 和 update_option()
WordPress 实现自定义 Ajax 请求
Node.js 实现 RBAC 权限模型
WordPress 常用接口
WordPress关闭自动草稿
WordPress 插件路径相关
WordPress 常用的路径
WordPress 添加自定义接口