merge into using 详解

1、merge into 语句

MERGE 是 Oracle9i 新增的语法,根据源表对目标表进行匹配查询,匹配成功时更新,不成功时插入
比单独的 update + insert 的方式效率要更高,尤其是on条件下有唯一索引的时候,效率更高。

使用场景

在写数据同步的脚本时,常常会遇到这样的需求:‘存在时 - 更新,不存在时,插入’1

语法

MERGE INTO 目标表 a
USING 源表 b
ON (a.字段1 = b.字段2 and a.字段n = b.字段n)
WHEN MATCHED THEN
UPDATE SET a.新字段 = b.字段
WHERE 限制条件
WHEN NOT MATCHED THEN
INSERT (a.字段名1,a.字段名n) VALUES(b.字段值1, b.字段值n)
WHERE 限制条件123456789

基础数据

源表1:同上基础数据(0.1)
目标表:
CREATE TABLE stu1
AS SELECT * from student t where t.id = 1;1234

实例

MERGE INTO stu1 a
USING student b
ON (a.sid = b.sid) -- 必须带 ‘()’括号
WHEN MATCHED THEN -- 整体扫描,匹配时,执行此处
UPDATE SET a.sname = '小倩'
<DELETE>
WHEN NOT MATCHED THEN -- 整体扫描,不匹配时,执行此处
INSERT (a.sid, a.xm)VALUES(5, 'e')


本文来自 鱼丸丶粗面 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qq_34745941/article/details/81176140?utm_source=copy

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • merge语法是根据源表对目标表进行匹配查询,匹配成功时更新,不成功时插入。其基本语法规则是:merge into...
    喜欢小星星_阅读 4,825评论 0 0
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,424评论 0 10
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,423评论 0 9
  • 不知道该怎么让自己变好 可是
    okubyou阅读 271评论 0 0
  • 喂,你在远方听我吗?在一片静谧的森林里,有小松鼠在灵巧的穿梭,你头上别着一朵白色的鸡蛋花,咧出灿烂的笑容,伸手接落...
    洛璃阅读 214评论 0 0