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;


真诚赞赏,手留余香
赞赏
MySQL,Node.js
Node.js MySQL 连接池和事务
2022-09-16
MySQL
MySQL 表名预处理
2022-09-18
ngtwewy
在什么样的花园里面,挖呀挖呀挖
种什么样的种子,开什么样的花
随机推荐
如何调整 iconfont 图标的位置和基线
支持 Selector API 的 HTML 解析器 node-html-parser
Node.js 使用 Jest 做单元测试
curl 的用法指南
Debian11 安装笔记3:安装 MySQL 5.7
如何使用命令修改 MySQL 数据库名称
Node.js 18.x 开始支持内置单元测试
ReferenceError: __dirname is not defined in ES module scope
WordPress 按自定义排序的两种方法
Node.js 使用 Jest 和 supertest 做接口测试

微信联系我

夜间模式切换
回到顶部