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
随机推荐
OpenSSL 创建 Nginx 可使用自建证书
怪异模式(Quirks Mode)导致 button 和 input 的大小不统一原因
JavaScript 的异步 IO 和事件循环概念
Node.js MySQL 连接池和事务
CentOS 如何防止 SSH 长时间不操作自动断开连接
使用 svg 作为背景图片
MySQL 函数 concat、concat_ws 和 group_concat
CentOS 时间命令 timedatectl
详解移动端网页适配开发
Node.js 图片处理模块 Jimp

微信联系我

夜间模式切换
回到顶部