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 使用 Jest 做单元测试
JavaScript 中的数据类型自动转换为 Boolean 状态
数据库中间表应该如何命名
JavaScript console 的用法
Linux apt 命令
uni-app 实现暗黑模式/夜间模式/深色模式/暗黑主题(DarkMode)的几种方法
macOS 生成 icns 图标
Debian11 安装笔记4:安装常用软件