简单的说就是,判断表中有没有符合on()条件中的数据,有了就更新数据,没有就插入数据。

有一个表T,有两个字段a、b,我们想在表T中做Insert/Update,如果条件满足,则更新T中b的值,否则在T中插入一条记录。在Microsoft的SQL语法中,很简单的一句判断就可以了,SQL Server中的语法如下:(推荐学习:MySQL视频教程)if exists(select 1 from T where T.a='1001' )

update T set T.b=2 Where T.a='1001'

else

insert into T(a,b) values('1001',2);

但是很明显这个语法对于SQL只能更改一条语句,并且Oracle不能使用.所以就有了Merge into(Oracle 9i引入的功能)语法merge into 目标表 a

using 源表 b

on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……)

when matched then update set a.更新字段=b.字段

when not matched then insert into a(字段1,字段2……)values(值1,值2……)

"在一个同时存在Insert和Update语法的Merge语句中,总共Insert/Update的记录数,就是Using语句中"源表"的记录数"。

源表b可能是一张表结构不同于a的表,有可能是一张构建相同表结构的临时表,也有可能是我们自己组起来的数据.

更多MySQL相关技术文章,请访问MySQL数据库图文教程栏目进行学习!

merge into用法mysql_merge into用法相关推荐

  1. mysql中merge的用法_mysql中merge表存儲引擎用法介紹

    mysql中merge表存儲引擎用法介紹: mysql的merge引擎類型允許你把許多結構相同的表合並為一個表.然后,你可以執行查詢,從多個表返回的結果就像從一個表返回的結果一樣.每一個合並的表必須有 ...

  2. (COPY)document.all和document.getElementById用法 document.all用法:

    (COPY)document.all和document.getElementById用法 document.all用法: <html>     <body>       < ...

  3. JObject 用法 、JProperty 用法、JArray 用法 Linq 转 Json

    转: JObject 用法 .JProperty 用法.JArray 用法 Linq 转 Json 1.使用LINQ to JSON前,需要引用Newtonsoft.Json的dll和using Ne ...

  4. C语言task的用法,C# Task 用法

    C# Task 的用法 其实Task跟线程池ThreadPool的功能类似,不过写起来更为简单,直观.代码更简洁了,使用Task来进行操作.可以跟线程一样可以轻松的对执行的方法进行控制. 顺便提一下, ...

  5. mysql日期函数之DATEDIFF() if()用法 case when用法

    mysql日期函数之DATEDIFF() if()用法 case when用法 背景: 用户密码七天后会过期,用户修改密码时会同步添加修改时间进数据库, 登录时校验用户是否需要修改密码, 一开始想的时 ...

  6. c语言(vd6.0) sleep函数用法 及delay用法

    c语言(vd6.0) sleep函数用法 及delay用法 悬赏分:20 | 解决时间:2009-5-20 20:56 | 提问者:杨筱硕 请注明头文件 2个函数都要举例 最佳答案 1.函数名: de ...

  7. C++基础用法—冒号的用法

    C++基础用法-冒号的用法 一.用法一:继承 1.1用法:用在class或struct后面 1.2示例代码 二.用法二:赋值 1.1用法:用在成员函数.构造函数后面 1.2示例代码 1.2.1示例代码 ...

  8. guess在Java中用法_guess的用法

    guess有推测;猜中;以为等意思,那么你知道guess的用法吗?下面跟着学习啦小编一起来学习关于guess的用法及相关知识吧,希望对大家的学习有所帮助! guess的用法 guess的用法1:gue ...

  9. 【Access各种类型变量表示】声明模块变量的用法,变量符号用法,文本型变量.日期型变量,数字型变量,数值型变量的符号表示法

    作 者:麥田   ID:11  城市:上海  QQ:3002789054 摘 要:声明模块变量的用法,变量符号用法,文本型变量.日期型变量,数字型变量,数值型变量的符号用法 正 文: 首先需要在模块声 ...

最新文章

  1. WindowsPhone基础琐碎总结-----数据绑定(一)
  2. python加减法视频教程免费_一起学opencv-python三十八(视频分析:背景减法)
  3. vb.net中的部分代码
  4. 单选项选择时,即时更新至数据库
  5. seleniumpython定位网页元素方法_使用Selenium对网页元素进行定位的诸种方法
  6. C++学习——默认构造函数
  7. java web远程调试工具_java远程调试 - Dendy的个人页面 - OSCHINA - 中文开源技术交流社区...
  8. PHP--去除字符串首尾空格
  9. DotText研究资料整理
  10. 根据两点经纬度计算距离和角度——java实现
  11. 2019湖南多校第四场
  12. python爬虫之模拟登陆(CSDN篇)
  13. mac lnmp 安装mysql_Mac安装LNMP环境
  14. vue 调用虚拟键盘
  15. 一文快速告诉你软件测试和软件调试有什么区别?
  16. PHP框架高级编程——应用Symfony、CakePHP
  17. stm32f107外设晶振8MHZ换成25MHZ 配置系统时钟72MHZ
  18. java nio 框架_几种Java NIO框架的比较(zz)
  19. OpenStack 归档 - 虚拟机临时存储与块存储
  20. 如何把数据分析做“精准”?

热门文章

  1. java currenttimemillis 效率_「currenttimemillis」高并发下System.currentTimeMillis()并发问题以及优化对比 - seo实验室...
  2. 让图形变得精致:seaborn绘图基础
  3. HSM和AsyncChannel介绍
  4. 我就是我,这世上不一样的烟火
  5. linux库函数实现复制文件,linux应用编程笔记(6)库函数方式实现文件复制编程...
  6. spring 从入门到总结
  7. 最完整的!WinForm使用ICSharpCode.TextEditor控件实现自定义高亮显示
  8. wireshark长时间抓包分多个文件
  9. 记录攻防世界web进阶
  10. 详解Active Directory域搭建