返回顶部
首页 > 资讯 > 数据库 >MySQL:插入数据insert ignore,重复数据自动忽略
  • 308
分享到

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

mysql 2023-08-30 18:08:17 308人浏览 独家记忆
摘要

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

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

您可能感兴趣的文档:

--结束END--

本文标题: MySQL:插入数据insert ignore,重复数据自动忽略

本文链接: https://lsjlt.com/news/383467.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作