在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 用update insert_mysql 一些insert/update的用法相关推荐

  1. java mysql insert_MySQL中INSERT的一般用法

    INSERT语句是最常见的SQL语句之一,但是MySQL中INSERT语句的用法和标准用法不尽相同,下文就为您详细介绍MySQL中INSERT的一般用法,供您参考. 1用法 在标准的SQL语句中,一次 ...

  2. mysql之DML(SELECT DELETE INSERT UPDATE)

    DML:数据操作语言     INSERT     DELETE     SELECT     UPDATE SELECT:     SELECT SELECT-LIST FROM TBNAME|TB ...

  3. mysql中在表中insert数据时,有重复主键id时,变成update

    MySQL 自4.1版以后开始支持INSERT - ON DUPLICATE KEY UPDATE语法 例如:  id name sex age  1 kathy male 23  2 Javer f ...

  4. linux mysql 事务_linux下mysql Insert update delete 事务 用户管理

    linux下mysql Insert update delete  事务 用户管理 1.INSERT插入语句格式: INSERT INTO tb_name (字段1, 字段2, ...) VALUES ...

  5. mysql中的merge into,SQL Server 2008中利用merge into关键实现insert/update自动匹配(类似于MySQL中的For Update关键字)...

    SQL Server 2008中利用merge into关键实现insert/update自动匹配(类似于MySQL中的For Update关键字) 语法请参考: 按照语法编写语句 DECLARE @ ...

  6. mysql replace into 语法_mysql Replace into与Insert update

    Replace into replace into 跟 insert 功能类似, 不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引 ...

  7. MySQL 当记录不存在时insert,当记录存在时update(ON DUPLICATE KEY UPDATE, REPLACE语句)...

    MySQL 当记录不存在时insert,当记录存在时更新 网上基本有三种解决方法. 第一种:示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语 ...

  8. mysql insert update 同时执行_MySQL进阶三板斧(三)看清“触发器 (Trigger)”的真实面目

    触发器(Trigger)的起源 MySQL是最受欢迎的开源RDBMS,被社区和企业广泛使用.触发器是MySQL在5.0.1(开天辟地一版本)中增加的三大新功能之一,另外两个师兄弟是视图(view)与存 ...

  9. mysql删除语句事务_事务用来管理 insert,update,delete 语句

    MySQL 事务 MySQL 事务主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数 ...

最新文章

  1. python语言及其应用-Python语言及其应用.PDF
  2. CSS层叠样式表进阶
  3. 【JUC并发编程05】集合的线程安全
  4. 插件~NuGet与packages管理项目的包包
  5. 菲涅尔效应(Fresnel Effect)
  6. pullToRefresh下拉刷新上拉加载
  7. Mobaxterm常用的指令(基于linux)
  8. windows 反弹shell_容器内反弹shell的51种姿势
  9. 神奇的python(一)之python脚本调用shell常用方法
  10. 2021年浙江省高考成绩查询哪里快,2021年浙江高考成绩排名及成绩公布时间什么时候出来...
  11. Samba配置文件常用参数详解-OK
  12. python强制转型,python2--python3如何转型
  13. QGIS的部分使用流程
  14. 案例集|不仅仅是酒店,还有更多可能——高星级酒店的跨界营销
  15. 树莓派系列(一):树莓派介绍
  16. java split竖线_java对竖线|进行分割(split)操作
  17. 清橙A1210. 光棱坦克
  18. python比较学生名单与签到名单查缺勤(Excel)
  19. 智慧零售产业应用实战,30分钟上手的高精度商品识别
  20. 网页设计图片素材网站 收集

热门文章

  1. 大数据分析的四个关键环节
  2. Android手机直播(三)声音采集
  3. 建议收藏 | 可实操,数据中台选型示例
  4. 论文网站及使用方法(ResearchGate、Sci-Hub等)
  5. 计算机组成,南北桥,倍频,通信,频率一致才可以通信
  6. html5 健身房模板,健身房瘦身HTML模板
  7. 习语言(c语言)轻松入门教程
  8. 记录C语言学习【单个按键之长按+短按】
  9. 集合竞价如何买入_如何在集合竞价买入当日上市新股
  10. 官方消息:即将开始退钱