MERGE可以合并多个表中的数据,也可实现多表中数据的同步。使用MERGE语句对表中数据进行有条件的更新和插入。当查找的行存在时,UPDATE更新行中的数据;当查找的行不存在时,INSERT插入数据。

语法如下:

MERGE INTO table_name table_alias

USING (table|view|sub_query) alias

ON (join condition)

WHEN MATCHED THEN

UPDATE SET

col1=col_val1,

col2=col_val2

WHEN NOT MATCHED THEN

INSERT (column_list)

VALUES (column_values);

语法解析:

MERGE INTO后跟要更新或者插入数据的目标表;

USING后跟源表;

ON后跟连接条件;

例如:同步dept表中数据到dept_1中

SQL> merge into dept_1 d1

2  using dept d

3  on (d.deptno=d1.deptno)

4  when matched then

5     update set  d1.dname = d.dname, d1.loc = d.loc

6  when not matched then

7     insert values (d.deptno, d.dname, d.loc);

4 rows merged.

注意:ON后面作为连接条件的列不必再从SET后出现,即不能更新作为条件的列。否则会报如下错误:

SQL> merge into dept_1 d1

2  using dept d

3  on (d.deptno=d1.deptno)

4  when matched then

5     update set d1.deptno = d.deptno, d1.dname = d.dname, d1.loc = d.loc

6  when not matched then

7     insert values (d.deptno, d.dname, d.loc);

on (d.deptno=d1.deptno)

*

ERROR at line 3:

ORA-38104: Columns referenced in the ON Clause cannot be updated: "D1"."DEPTNO"

最新文章

  1. .NET各大平台数据列表控件绑定原理及比较(WebForm、Winform、WPF)
  2. VS2013中, 无法嵌入互操作类型“……”,请改用适用的接口的解决方法
  3. php捕捉来自搜索引擎的用户IP地址时间和访问路径
  4. <页面里折合与打开>
  5. Window Server 2012 R2 没有照片查看器 打开图片都是画板问题怎么解决
  6. acm 选夫婿
  7. 【温故而知新-Javascript】使用 Document 对象
  8. 字符串匹配的sunday算法
  9. jQ $.extend用法
  10. 代码,显示IPhone剩余磁盘空间
  11. LeetCode 202. Happy Number (快乐数字)
  12. linux常用基本命令整理小结
  13. 聊聊Unity的Gamma校正以及线性工作流
  14. ionic基于GPS定位并通过百度地图获取定位详细信息
  15. Postman runner参数化
  16. zstu 4247-萌新的旅行
  17. day20-面向对象编程、继承
  18. QMDP-Net: Deep Learning for Planning under Partial Observability
  19. 2019第十届蓝桥杯 E题 迷宫
  20. WebService有什么用?

热门文章

  1. Problem 42
  2. i++与++i的区别及效率
  3. 【Codeforces 478C】Table Decorations
  4. qwb与整数对
  5. Java SE 之 递归方法
  6. nyoj_216_A problem is easy_201312051117
  7. Spring整体架构
  8. HDU 5245 上海大都会 J题 (概率期望)
  9. HDU 1561&HDU 3449 一类简单依赖背包问题
  10. JCE, Java Cryptography Extension