SQL 高级语法 MERGE INTO

根据与源表相联接的结果,对目标表进行插入、更新、删除等操作。 例如,对目标表,如果源表存在的数据则更新,没有的则插入,就可以使用MEREG进行同步。

基本语法

复制代码
MERGE INTO target_table
USING source_table
ON condition
WHEN MATCHED THEN 
XXX
WHEN NOT MATCHED THEN 
XXX

这里的Source table 不限于单独的表格,也可以是子查询的内容

示例

复制代码
INSERT tbl_A (col, col2)
SELECT col, col2
FROM tbl_B
WHERE NOT EXISTS (SELECT col FROM tbl_A A2 WHERE A2.col = tbl_B.col);

上面的SQL是为了向 tbl_A 中插入 tbl_B 含有的,但是 tbl_A 不包含的col

改为MERGE可以写为

复制代码
MERGE INTO tbl_A  t  
    USING tbl_B v  
    ON t.col = v.col  
    WHEN MATCHED THEN   
        UPDATE SET y.c2 = v.c2  
    WHEN NOT MATCHED THEN  
        INSERT (col, col2) VALUES (v.c1, v.c2);

(这里为了展示更多的选项,加多了一句UPDATE)

当一个表需要依托于另一个表进行更新操作的时候,使用MERGE可以快捷的实现

相关推荐
冰暮流星6 分钟前
mysql多表练习2
数据库·sql·mysql
虎虎(_ _)。゜zzZ18 小时前
SQLAlchemy入门教程
数据库·后端·python·sql·ai·sqlalchemy
梦帮科技18 小时前
RNS 代币架构:ERC20 五件套扩展与六钱包分配
人工智能·sql·区块链·database·合成复用原则·加密货币
shirsl1 天前
数据开发每日面试题 Day 5
大数据·数据库·sql·big data
润乾软件1 天前
SQLazy: 按订单 SKU 条件分配仓库
sql·sqlazy
geovindu1 天前
sql: Data Modeling Patterns using mysql
sql·mysql·设计模式·数据库开发
这个DBA有点耶1 天前
AI Agent操作数据库的安全边界:只读沙箱、操作预演与自动回滚如何落地?
数据库·sql·程序人生·aigc·数据库架构·dba
Gl�ria1 天前
Hive SQL 执行卡住完整排查 & 处理
hive·hadoop·sql
xcLeigh1 天前
让大模型长出手脚,自己写SQL查数据库(Function Calling初探)
数据库·人工智能·sql·时序数据库·timechoai
2601_962680222 天前
数据分析面试常考的SQL题和业务题分别是哪几类?
sql·面试·数据分析