MySQL:插入数据insert ignore,重复数据自动忽略
MySQL中插入数据,如果插入的数据在表中已经存在(主键或者唯一键已存在),使用insert ignore 语法可以忽略插入重复的数据。
1、insert ignore 语法
insert ignore into table_name values…
使用insert ignore语法插入数据时,如果发生主键或者唯一键冲突,则忽略这条插入的数据。
满足以下条件之一:
主键重复
唯一键重复
2、insert ignore 案例
先看一张表,表名table_name,主键id,唯一键name,具体表结构及表中数据如下:
CREATE TABLE table_name(id int(11) NOT NULL,name varchar(50) DEFAULT NULL,age int(11) DEFAULT NULL,PRIMARY KEY (id),UNIQUE KEY uk_name (name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql> select * from table_name;
+----+------+------+
| id | name | age |
+----+------+------+
| 1 | Tom | 20 |
+----+------+------+
2.1 主键冲突
插入一条记录,id为1,如果不加 ignore ,报主键冲突的错误,如下:
mysql> insert into table_name values(1,’Bill’, 21);
ERROR 1062 (23000): Duplicate entry ‘1’ for key ‘PRIMARY’
加上ignore之后,不会报错,但有一个warning警告,如下:
mysql> insert ignore into table_name values(1,’Bill’, 21);
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show warnings;
+———+——+—————————————+
| Level | Code | Message |
+———+——+—————————————+
| Warning | 1062 | Duplicate entry ‘1’ for key ‘PRIMARY’ |
+———+——+—————————————+
查询表,发现插入的数据被忽略了。
mysql> select * from table_name;
+—-+——+——+
| id | name | age |
+—-+——+——+
| 1 | Tom | 20 |
+—-+——+——+
2.2 唯一键冲突
同样,插入唯一键冲突的数据也会忽略,如下所示:
mysql> insert into table_name values(2,’Tom’,21);
ERROR 1062 (23000): Duplicate entry ‘Tom’ for key ‘uk_name’mysql> insert ignore into table_name values(2,’Tom’,21);
Query OK, 0 rows affected, 1 warning (0.00 sec)
如果业务逻辑需要插入重复数据时自动忽略,不妨试试MySQL 的 insert ignore 功能。
MySQL:插入数据insert ignore,重复数据自动忽略相关推荐
- python去重复的数据_Python中mysql查询重复数据并删除重复数据
#coding:utf-8 import mysql.connector mydb = mysql.connector.connect( host='localhost', user='root', ...
- MYSQL 删除表中的重复数据
test表中的原始数据: test表中name字段信息有重复,想进行过滤删除重复数据 删除重复数据之后的预期结果(不考虑id): 方法一: 用 create ......select......gro ...
- MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据
MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据 目录导航: 开发背景: 实战: 表结构如下图所示: 操作: 总结: 回到顶部 开发背景: 最近在做一个批量数据导入到MySQL数据 ...
- 【转】《与MySQL的零距离接触》第四章:操作数据表中的记录 (4-2:MySQL 插入记录INSERT)
转载出处: 慕课网:<与MySQL的零距离接触>笔记目录https://zhangjia.tv/682.html 4-2:MySQL 插入记录INSERT 插入记录的语法结构: INSER ...
- MySQL中的insert ignore into讲解
最近工作中,使用到了insert ignore into语法,感觉这个语法还是挺有用的,就记录下来做个总结. insert ignore into : 忽略重复的记录,直接插入数据. 包括两种场景: ...
- cdatabase读取excel第一行数据_pandas读取excel数据并对重复数据进行标记或者删除
pandas读取excel数据并对重复数据进行标记或者删除mp.weixin.qq.com pandas通常在读取excel数据之后,如果需要进行去重,有两种方式,一种是进行标记,另一种是在pand ...
- mysql重复记录大于十的数据库_面试官:在使用mysql数据库时,遇到重复数据怎么处理?...
前言 前段时间,很多人问我能不能写一些数据库的文章,正好自己在测试mysql数据库性能的时候,出现了一个问题,也就是出现了很多重复的数据,想起来自己long long ago写过一篇类似的,仅此就拿来 ...
- 源数据怎么排查重复MySQL_面试官:在使用mysql数据库时,遇到重复数据怎么处理?...
前言 前段时间,很多人问我能不能写一些数据库的文章,正好自己在测试mysql数据库性能的时候,出现了一个问题,也就是出现了很多重复的数据,想起来自己long long ago写过一篇类似的,仅此就拿来 ...
- MySQL插入语句insert into,insert ignore into,insert into ... on duplicate key update,replace into-解决唯一键约束
文章目录 常用插入语句 insert into insert ignore into insert into ... on duplicate key update replace into 使用场景 ...
最新文章
- vuex+vue-router拦截
- ES6-Promise对象
- 虚拟鼠标代替安卓触屏_iQOO对比黑鲨2:那个虚拟按键设计更好?
- [机器学习]理解熵,交叉熵和交叉熵的应用
- 《JavaScript100例|01》之javaScript实现俄罗斯方块,唤起了女朋友儿时的回忆!
- 天池 在线编程 有效的字符串
- 语言专项精讲课程 赵海英_最全汇总:沪江日语课程体系指南
- 2017.10.16 水管局长水管局长数据加强版 思考记录
- swoole 异步client redis TP5 微信模板消息 demo版本比较杂 代码注释啥的都没删除 但是可以用作为参考
- 问题来了,个人用户可以使用短信接口吗?答案很意外
- 神州数码服务器型号,[DCN]神州数码无线常用配置
- 模拟退火算法应用(Java)
- EXCEL,如何进行查找,单条件和多条件查询
- 核心路由器市场分析:07回顾以及08展望
- 弹力球小程序C语言实现
- 如何把团队带成一盘散沙?
- 一个页面中有多个audio标签,其中一个播放结束后自动播放下一个,audio连续播放
- 鸟枪换炮,Android Studio的初体验——Android Studio系列(一)
- 用计算机画漫画很难吗,怎么在电脑上画漫画,难不难
- python通过qq邮箱发邮件