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;


声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
随机推荐
Node.js os 模块
WordPress 评论表单函数 comment_form()
JavaScript 类操作 classList
JavaScript screen对象
JavaScript 引用类型
WordPress 分类添加自定义字段
WordPress 文章排序
Node.js http 模块