MySQL的insert ignore into
最近工作中,使用到了insert ignore into语法,感觉这个语法还是挺有用的,就记录下来做个总结。
insert ignore into : 忽略重复的记录,直接插入数据。
包括两种场景:
1、插入的数据是主键冲突时
insert ignore into会给出warnings,show warnings就可以看到提示主键冲突;并且本次插入无效。
-
[test]> create table tt(c1 int primary key, c2 varchar(50))engine = xx;
-
Query OK, 0 rows affected (0.21 sec)
-
-
[test]> insert into tt values(1, "aaa"), (2, "bbb"), (3, "ccc");
-
Query OK, 3 rows affected (0.02 sec)
-
Records: 3 Duplicates: 0 Warnings: 0
-
-
[test]> select * from tt;
-
---- ------
-
| c1 | c2 |
-
---- ------
-
| 1 | aaa |
-
| 2 | bbb |
-
| 3 | ccc |
-
---- ------
-
3 rows in set (0.01 sec)
-
-
[test]>
-
[test]> insert ignore into tt values(1, "aaa"), (2, "bbb"), (3, "ccc");
-
Query OK, 0 rows affected, 3 warnings (0.01 sec)
-
Records: 3 Duplicates: 3 Warnings: 3
-
-
[test]>
-
[test]> select * from tt;
-
---- ------
-
| c1 | c2 |
-
---- ------
-
| 1 | aaa |
-
| 2 | bbb |
-
| 3 | ccc |
-
---- ------
-
3 rows in set (0.00 sec)
使用insert ignore into语句时,如果主键冲突,只是提示"warnings"。
如果使用insert into语句时,如果主键冲突直接报错。
2、没有主键冲突时,直接插入数据
insert into 与 insert ignore into 都是直接插入数据
-
[test]> create table t2(c1 int, c2 varchar(50))engine = xxx;
-
Query OK, 0 rows affected (0.05 sec)
-
-
[test]> insert into t2 values(1, "aaa"), (2, "bbb"), (3, "ccc");
-
Query OK, 3 rows affected (0.03 sec)
-
Records: 3 Duplicates: 0 Warnings: 0
-
-
GreatDB Cluster[test]> select * from t2;
-
------ ------
-
| c1 | c2 |
-
------ ------
-
| 1 | aaa |
-
| 2 | bbb |
-
| 3 | ccc |
-
------ ------
-
3 rows in set (0.00 sec)
-
-
[test]> insert into t2 values(1, "aaa"), (2, "bbb"), (3, "ccc");
-
Query OK, 3 rows affected (0.02 sec)
-
Records: 3 Duplicates: 0 Warnings: 0
-
-
-
[test]> insert into t2 values(1, "aaa"), (2, "bbb"), (3, "ccc");
-
Query OK, 3 rows affected (0.02 sec)
-
Records: 3 Duplicates: 0 Warnings: 0
-
-
[test]> select * from t2;
-
------ ------
-
| c1 | c2 |
-
------ ------
-
| 1 | aaa |
-
| 2 | bbb |
-
| 3 | ccc |
-
| 1 | aaa |
-
| 2 | bbb |
-
| 3 | ccc |
-
| 1 | aaa |
-
| 2 | bbb |
-
| 3 | ccc |
-
------ ------
-
9 rows in set (0.00 sec)
-
-
[test]> insert ignore into t2 values(1, "aaa"), (2, "bbb"), (3, "ccc");
-
Query OK, 3 rows affected (0.03 sec)
-
Records: 3 Duplicates: 0 Warnings: 0
-
因此,insert ignore into主要是忽略重复的记录,直接插入数据。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggfjij
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13