我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL:插入数据insert ignore,重复数据自动忽略

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL:插入数据insert ignore,重复数据自动忽略

MySQL中插入数据,如果插入的数据在表中已经存在(主键或者唯一键已存在),使用insert ignore 语法可以忽略插入重复的数据。

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 |+----+------+------+

1 主键冲突
插入一条记录,id为1,如果不加 ignore ,报主键冲突的错误,如下:

mysql> insert into table_name values(1,’Bill’, 21);ERROR 1062 (23000): Duplicate entry ‘1for keyPRIMARY

加上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 ‘1for keyPRIMARY|+———+——+—————————————+

查询表,发现插入的数据被忽略了。

mysql> select * from table_name;+-+——+——+| id | name | age  |+-+——+——+|  1 | Tom  |   20 |+-+——+——+

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 功能。

来源地址:https://blog.csdn.net/qq_41848006/article/details/128274196

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL:插入数据insert ignore,重复数据自动忽略

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL:插入数据insert ignore,重复数据自动忽略

MySQL中插入数据,如果插入的数据在表中已经存在(主键或者唯一键已存在),使用insert ignore 语法可以忽略插入重复的数据。 1、insert ignore 语法 insert ignore into table_name va
2023-08-30

详解MySql如何不插入重复数据

目录1、insert ignore into2、on duplicate key update3、insert ... select ... where not exist4、replace into向数据库的插入值时,需要判断插入是否重复
2023-01-17

MySQL脚本批量自动插入数据及数据可按条件插入实现

目录1.mysql脚本批量自动插入数据(数据相同)2.MySQL脚本批量自动插入数据(数据不相同)3.MySQL脚本批量自动插入数据(数据按条件生成) 1.MySQL脚本批量自动插入数据(数据相同)要自动插入100条数据,你可以使用循环来
MySQL脚本批量自动插入数据及数据可按条件插入实现
2024-01-29

Mysql 唯一索引 防止重复插入数据

一般的批量插的 sql语句数据违反唯一性约束时,出现重复数据将会直接报错并停止执行insert into tb_name (field1,field2) values(f11,f12),(f21,f22)...这种语句将会报错并停止执行   Warning:

	Mysql 唯一索引 防止重复插入数据
2020-05-18

Mysql避免重复插入数据的4种方式

最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下: 这里为了方便演示,我新建了一个use
2022-05-21

防止MySQL重复插入数据的三种方法

新建表格CREATE TABLE `person` (`id` int NOT NULL COMMENT '主键',`name` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DE
2022-05-19

MySql三种避免重复插入数据的方法

前言 MySql 在存在主键冲突或唯一键冲突的情况下,根据插入方式,一般有以下三种插入方式避免错误。insert ignore。replace intoinsert on duplicate key updateinsert ignorei
2022-05-21

MySQL插入锁与数据库性能调优的自动化

MySQL插入锁是一种锁机制,用于在执行INSERT操作时保护数据的完整性。在MySQL中,插入锁会锁定整个表,以确保在插入数据时不会发生并发冲突。对于数据库性能调优的自动化,可以通过使用MySQL的性能调优工具和脚本来实现。这些工具和脚
MySQL插入锁与数据库性能调优的自动化
2024-08-14

编程热搜

目录