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 少一次数据库交互,工业系统海量数据入库必用。

相关推荐
IvorySQL4 小时前
PostgreSQL 日报|恢复期 COPY TO 未日志表修复(10 月 21 日)
数据库·postgresql·区块链
贝猫说python5 小时前
大模型比赛2.3智能体开发(工具调用智能问答助手)
数据库·oracle
许彰午7 小时前
28-ORA-01110数据文件读取错误
数据库·oracle
凯凯姜7 小时前
MySQL 联合索引设计与索引失效
数据库·mysql
猫咪很可爱7 小时前
Oracle TEMP 表空间不足(ORA-01652)问题分析与优化实践
数据库·oracle
九零HTTP9 小时前
10月21号-CSDN配菜-IP池的5个坑
服务器·数据库·tcp/ip
Data-Miner9 小时前
需要做财务数据分析,有什么好用的工具?从准备到出报告的实操指南
大数据·数据库·数据分析
袋鼠云数栈10 小时前
让 SQL 解析不再重复造轮子:SqlParserX 正式开源
数据库·人工智能·sql·开源·数据治理
这个DBA有点耶10 小时前
期货 CTP 系统 Oracle RAC 迁移国产库实战:读写分离架构设计与性能对标
数据库·架构·dba
数据库安全10 小时前
AI数据访问安全 |如何控制AI访问权限,防止越权
数据库·安全