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,重复数据自动忽略相关推荐

  1. python去重复的数据_Python中mysql查询重复数据并删除重复数据

    #coding:utf-8 import mysql.connector mydb = mysql.connector.connect( host='localhost', user='root', ...

  2. MYSQL 删除表中的重复数据

    test表中的原始数据: test表中name字段信息有重复,想进行过滤删除重复数据 删除重复数据之后的预期结果(不考虑id): 方法一: 用 create ......select......gro ...

  3. MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据

    MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据 目录导航: 开发背景: 实战: 表结构如下图所示: 操作: 总结: 回到顶部 开发背景: 最近在做一个批量数据导入到MySQL数据 ...

  4. 【转】《与MySQL的零距离接触》第四章:操作数据表中的记录 (4-2:MySQL 插入记录INSERT)

    转载出处: 慕课网:<与MySQL的零距离接触>笔记目录https://zhangjia.tv/682.html 4-2:MySQL 插入记录INSERT 插入记录的语法结构: INSER ...

  5. MySQL中的insert ignore into讲解

    最近工作中,使用到了insert ignore into语法,感觉这个语法还是挺有用的,就记录下来做个总结. insert ignore into : 忽略重复的记录,直接插入数据. 包括两种场景: ...

  6. cdatabase读取excel第一行数据_pandas读取excel数据并对重复数据进行标记或者删除

    pandas读取excel数据并对重复数据进行标记或者删除​mp.weixin.qq.com pandas通常在读取excel数据之后,如果需要进行去重,有两种方式,一种是进行标记,另一种是在pand ...

  7. mysql重复记录大于十的数据库_面试官:在使用mysql数据库时,遇到重复数据怎么处理?...

    前言 前段时间,很多人问我能不能写一些数据库的文章,正好自己在测试mysql数据库性能的时候,出现了一个问题,也就是出现了很多重复的数据,想起来自己long long ago写过一篇类似的,仅此就拿来 ...

  8. 源数据怎么排查重复MySQL_面试官:在使用mysql数据库时,遇到重复数据怎么处理?...

    前言 前段时间,很多人问我能不能写一些数据库的文章,正好自己在测试mysql数据库性能的时候,出现了一个问题,也就是出现了很多重复的数据,想起来自己long long ago写过一篇类似的,仅此就拿来 ...

  9. 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 使用场景 ...

最新文章

  1. vuex+vue-router拦截
  2. ES6-Promise对象
  3. 虚拟鼠标代替安卓触屏_iQOO对比黑鲨2:那个虚拟按键设计更好?
  4. [机器学习]理解熵,交叉熵和交叉熵的应用
  5. 《JavaScript100例|01》之javaScript实现俄罗斯方块,唤起了女朋友儿时的回忆!
  6. 天池 在线编程 有效的字符串
  7. 语言专项精讲课程 赵海英_最全汇总:沪江日语课程体系指南
  8. 2017.10.16 水管局长水管局长数据加强版 思考记录
  9. swoole 异步client redis TP5 微信模板消息 demo版本比较杂 代码注释啥的都没删除 但是可以用作为参考
  10. 问题来了,个人用户可以使用短信接口吗?答案很意外
  11. 神州数码服务器型号,[DCN]神州数码无线常用配置
  12. 模拟退火算法应用(Java)
  13. EXCEL,如何进行查找,单条件和多条件查询
  14. 核心路由器市场分析:07回顾以及08展望
  15. 弹力球小程序C语言实现
  16. 如何把团队带成一盘散沙?
  17. 一个页面中有多个audio标签,其中一个播放结束后自动播放下一个,audio连续播放
  18. 鸟枪换炮,Android Studio的初体验——Android Studio系列(一)
  19. 用计算机画漫画很难吗,怎么在电脑上画漫画,难不难
  20. python通过qq邮箱发邮件

热门文章

  1. 小程序的学习步骤计划
  2. TicTacToe: 基于时序差分TD(0)算法的agent实现以及完整python实现框架
  3. 系统分析师(2006)
  4. Bash 脚本中的错误处理
  5. 梯度下降求解一元二次函数
  6. Android测试思路
  7. C/C++解决MD5加密库,在32和64位平台下计算不同的问题。
  8. Jellyfin 刮削加速
  9. socket多人聊天程序C语言版(一)
  10. 【转】关于相关性的7个最常见的问题