Oracle中Merge Using用法

MERGE INTO 是 Oracle 独有的 DML (数据操纵语言) 语法,也叫**「合并更新 / 插入语句」,是 Oracle 最强大的语法之一,专门解决 「单条 SQL 完成 插入 + 更新 两个操作」**的业务需求,替代了传统的 先SELECT判断 → 再INSERT/UPDATE 这种低效且有并发风险的写法。

复制代码
MERGE INTO 目标表 目标表别名
USING 数据源 数据源别名
ON (匹配条件)
-- 匹配成功时执行【更新】,可写多个字段更新
WHEN MATCHED THEN 
    UPDATE SET 目标表别名.字段1=数据源别名.字段1, 目标表别名.字段2=数据源别名.字段2 [WHERE 更新过滤条件]
-- 匹配失败时执行【插入】,字段和值一一对应
WHEN NOT MATCHED THEN 
    INSERT (目标表字段1, 目标表字段2, ...) VALUES (数据源别名.字段1, 数据源别名.字段2, ...) [WHERE 插入过滤条件];

1.MERGE INTO 是整体关键字,必须和 USING 成对出现,缺一不可;

2.ON(匹配条件) 是核心判断依据,决定了走「更新」还是「插入」;

3.WHEN MATCHED 和 WHEN NOT MATCHED 分支至少写一个,也可以两个都写(你的业务就是两个都写,最常用);

4.两个分支是互斥的:永远只会执行其中一个,不会同时触发;

5.执行效率极高:一次 SQL 请求完成两个逻辑,比 SELECT+INSERT/UPDATE 少一次数据库交互,工业系统海量数据入库必用。

相关推荐
岁岁种桃花儿14 分钟前
MySQL从入门到精通系列:InnoDB记录存储结构
数据库·mysql
蜜獾云1 小时前
oracle查询所有的表名和注释
oracle
jiunian_cn1 小时前
【Redis】hash数据类型相关指令
数据库·redis·哈希算法
冉冰学姐2 小时前
SSM在线影评网站平台82ap4(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm框架·在线影评平台·影片分类
知识分享小能手3 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019数据库的操作(2)
数据库·学习·sqlserver
爬山算法3 小时前
Hibernate(84)如何在DevOps流程中使用Hibernate?
oracle·hibernate·devops
踩坑小念4 小时前
秒杀场景下如何处理redis扣除状态不一致问题
数据库·redis·分布式·缓存·秒杀
萧曵 丶4 小时前
MySQL 语句书写顺序与执行顺序对比速记表
数据库·mysql
Wiktok5 小时前
MySQL的常用数据类型
数据库·mysql
曹牧5 小时前
Oracle 表闪回(Flashback Table)
数据库·oracle