2019独角兽企业重金招聘Python工程师标准>>>

在MySQL中进行条件插入数据时,可能会用到以下语句,现小结一下。我们先建一个简单的表来作为测试:

CREATE TABLE `books` (`id` INT(11) NOT NULL AUTO_INCREMENT,`name` VARCHAR(200) NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `NewIndex1` (`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

1.insert ignore into

当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回。所以使用ignore请确保语句本身没有问题,否则也会被忽略掉。例如:

INSERT IGNORE INTO books (name) VALUES ('MySQL Manual')

2.on duplicate key update

当primary或者unique重复时,则执行update语句,如update后为无用语句,如id=id,则同1功能相同,但错误会被忽略掉。例如,为了实现name重复的数据插入不报错,可使用以下语句:

INSERT INTO books (name) VALUES ('MySQL Manual') ON duplicate KEY UPDATE id = id

3.insert … select … where not exist

根据select的条件判断是否插入,可以不光通过primary 和unique来判断,也可通过其它条件。例如:

INSERT INTO books (name) SELECT 'MySQL Manual' FROM dual WHERE NOT EXISTS (SELECT id FROM books WHERE id = 1)

4.replace into

如果存在primary or unique相同的记录,则先删除掉。再插入新记录。

REPLACE INTO books SELECT 1, 'MySQL Manual' FROM books

来自:!MySQL中的insert ignore into, replace into等的一些用法总结

转载于:https://my.oschina.net/zjllovecode/blog/1594953

mysql 几种插入数据的方法相关推荐

  1. mysql 避免重复添加_MySql三种避免重复插入数据的方法

    前言 MySql 在存在主键冲突或唯一键冲突的情况下,根据插入方式,一般有以下三种插入方式避免错误. insert ignore. replace into insert on duplicate k ...

  2. mysql重复上一行的快捷_MySql三种避免重复插入数据的方法

    前言 MySql 在存在主键冲突或唯一键冲突的情况下,根据插入方式,一般有以下三种插入方式避免错误. insert ignore. replace into insert on duplicate k ...

  3. thinkphp mysql批量入库_ThinkPHP3.2框架使用addAll()批量插入数据的方法

    本文实例讲述了ThinkPHP3.2框架使用addAll()批量插入数据的方法.分享给大家供大家参考,具体如下: thinkphp中model类的addAll()方法可以将数据同时添加到数据库中. / ...

  4. 三种批量插入数据的方法

    批量插入数据 本文将介绍三种批量插入数据的方法.第一种方法是使用循环语句逐个将数据项插入到数据库中:第二种方法使用的是SqlBulkCopy,使您可以用其他源的数据有效批量加载 SQL Server ...

  5. mysql中常用的三种插入数据的语句

    mysql中常用的三种插入数据的语句: insert into表示插入数据,数据库会检查主键(PrimaryKey),如果出现重复会报错: replace into表示插入替换数据,需求表中有Prim ...

  6. oracle怎么把数据跑进视图里,在Oracle中向视图中插入数据的方法

    在Oracle中向视图中插入数据的方法 插入视图的条件: 1.如果视图是基于一个基础表产生的,那么这就称为非连接视图,所有的非连接视图都是可以更新的,也就是说可以在该视图上进行,INSERT,UPDA ...

  7. php addall,ThinkPHP3.2框架使用addAll()批量插入数据的方法

    这篇文章主要介绍了ThinkPHP3.2框架使用addAll()批量插入数据的方法,结合实例形式分析了thinkPHP针对单条数据插入及批量数据插入操作的相关实现技巧,需要的朋友可以参考下 本文实例讲 ...

  8. addall php,ThinkPHP3.2框架使用addAll()批量插入数据的方法

    本文实例讲述了ThinkPHP3.2框架使用addAll()批量插入数据的方法.分享给大家供大家参考,具体如下: thinkphp中model类的addAll()方法可以将数据同时添加到数据库中. / ...

  9. mysql数据库表插入数据

    如何向mysql数据表中插入数据? 答:你可以通过 mysql> 命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据. 以下为向MySQL数据表插入数据通用的 INSERT INTO ...

最新文章

  1. linux驱动之i2c子系统mpu6050设备驱动
  2. 哈哈哈,这个教人写出烂代码的项目在 GitHub 上火了...
  3. 优秀员工应该具备的11个特质
  4. 程序安装包制作工具 v1.0官方版
  5. 拖拽的原生和jQuery写法
  6. BoW模型用于图像检索的一般化流程
  7. ionic 实用技巧
  8. DES对称加密(2)三重DES
  9. 第七章 Web开发实战2——商品详情页
  10. 观点:Linux 上的杀毒软件
  11. Word英文句子之间空两格的方法,有截图
  12. 选择文件夹里指定文件图片路径_这简直是鼠标一拖,自动帮你整理好文件
  13. mybatis~动态SQL(1)
  14. Adobe Acrobat软件安装步骤
  15. MMA7455L笔记
  16. jmeter的apple to sample是什么意思02
  17. 2u服务器支持29块硬盘,01-正文
  18. Android加载的图片在内存中的大小
  19. Springboot健康饮食小程序的设计的实现毕业设计源码280920
  20. linux期中架构文档,Linux期中架构 - osc_jbr77wuo的个人空间 - OSCHINA - 中文开源技术交流社区...

热门文章

  1. jQuery中bind,live,delegate与one方法的用法及区别
  2. Java生成指定范围随机数的方法
  3. 入门机器学习(二十)--编程作业-异常检测和推荐系统(Python实现)
  4. Promise(异步处理-实现)
  5. wxpython应用程序错误_wxPython因分段错误而崩溃
  6. [LOJ#6053]简单的函数 题解
  7. 通用分页查询存储过程
  8. C++反汇编第五讲,认识多重继承,菱形继承的内存结构,以及反汇编中的表现形式....
  9. Linux 链接详解----静态链接实例分析
  10. python基础27 -----python进程终结篇-----IO模型