最近工作中,使用到了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: 0GreatDB 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主要是忽略重复的记录,直接插入数据。

MySQL中的insert ignore into讲解相关推荐

  1. mysql+inser+select_在MySQL中结合INSERT,VALUES和SELECT

    您可以使用以下语法组合插入,值和选择语句insert into yourFirstTableName(yourColumnName1,yourColumnName2,.......N) select  ...

  2. MySQL中关于insert语句速度的优化

    1.分析 插入一行分下面几个动作,括号后面是其大约比例额 Connecting(3) Sendint query to server(2) Parsing query(2) Inserting row ...

  3. mysql insert 几分钟_我们可以在MySQL中应用INSERT语句时向VARCHAR日期时间记录添加分钟吗?...

    是的,我们可以在将值插入表中时增加分钟数.让我们首先创建一个表.在这里,我们有一列包含VARCHAR记录,其中mysql> create table DemoTable2026 -> ( ...

  4. MySQL 中的 INSERT 是怎么加锁的?(荣耀典藏版)

    目录 前言 一.INSERT 加锁的困惑 二.编译 MySQL 源码 三.调试 INSERT 加锁流程 参考文章 前言 大家好,我是程序缘--幻羽,我又来了!! 前几天看到热心网友在评论中提出的一个问 ...

  5. mysql insert union_在MySQL中使用INSERT INTO SELECT和UNION执行多次插入

    要执行多次插入,语法如下:insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,..N) select y ...

  6. mysql中 视图的优缺点,详细讲解MYSQL视图的作用及优缺点

    一.概念 1.视图是MySQL在5.0.1版本中加入的功能.它可以理解为一个虚表. 2.之所以被称为虚表,是因为它只是存储了一个结构,并不存储真实的数据.行和列的数据来自定义视图的查询中使用的表,并且 ...

  7. 使用navicat工具将mysql中的insert、update等sql语句生成为delphi的格式

    1.打开表. 2.复制为update语句. 3.粘贴到笔记本中,使用替换工具,去除引号. 粘贴到查询编辑器中,含引号复制为delphi语句. 结果. 'UPDATE wqkdatabase.cp_gr ...

  8. mysql+inser+select_解析MySQL中INSERT INTO SELECT的使用

    1. 语法介绍 有三张表a.b.c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段.对于这种情况,可以使用如下的语句来实现: INSERT INTO db1_name (field1, ...

  9. mysql表设计讲解_MySQL中数据库的设计归纳讲解

    谈到MySQL中数据库的设计,相信大家都知道这是实现实际业务的重要一步,因此对于Java学习者来说,深入了解和学习数据库的设计是十分有必要的.本文为大家准备了一份MySQL中数据库的设计归纳讲解,内容 ...

最新文章

  1. kotlin + springboot启用elasticsearch搜索
  2. BZOJ3522 [Poi2014]Hotel 【树形dp】
  3. C++11 (多线程)并发编程总结
  4. 对Tensor结果使用opencv2中的操作
  5. Android 小技巧
  6. iOS 事件传递响应链
  7. conda 换成清华的源_conda/pip 使用国内镜像安装第三方库
  8. 软件架构(10)---java资深架构师分布式技术分享
  9. django-dynamic-scraper(DDS)配置中的一些问题
  10. 时间和日期的JS库Day.js入门教程
  11. 怎么让百度收录站点的图片呢?
  12. 依赖于 !important 标签是个危险的现象。奔驰车如何查4S店的保养记录
  13. Snagit 2019 快速截图
  14. b和kb的换算_KB换算
  15. win7升级win10激活指南——查看预装Win7/8/8.1电脑内置系统激活密钥(OEM Key)方法
  16. 使注册用户名时不能包含特殊符号
  17. matlab 中 t=0:t:(n-1)t;k=0:n-1,如何用matlab画出单位脉响应h(n)=sin(n
  18. 数字孪生医院:一个围绕着智慧医院决策的建模、管理和行动闭环的全新方式...
  19. 苹果消息推送服务教程:第二部分(共2部分)
  20. 使用MSHTML解析HTML代码

热门文章

  1. 搜索引擎 Solr 简介
  2. 圆柱体积在线计算机,(完整版)圆柱体积计算练习题.docx
  3. Linux_网络项目_WEB服务器 设计CGI机制,与CGI处理数据
  4. 服务器系统关闭显卡加速,Windows Server2008 R2性能优化方法
  5. 杰理之LINEIN 左右声道与 DACLR 输入出的注意【篇】
  6. 从零基础到高级程序员需要走多久?
  7. 前端开发 IE 中的常用调试工具 _ PlanABC - 怿飞’s Blog
  8. js回调函数的用途与写法
  9. 外文翻译原文附在后面_外文翻译及外文原文(参考格式).doc
  10. python中matrix是什么意思_Python与线性代数——Numpy中的matrix()和array()的区别