merge into using on when then 是 Oracle 数据库合并数据表的一种操作,
MERGE INTO target_table a
USING source_table b
ON (a.col1 = b.col1 and a.col2 = b.col2)
WHEN MATHED THEN update set a.col3 = b.col3
WHEN NOT MATHED THEN insert (a.col1,a.col2,a.col3) values(b.col1,b.col2,b.col3);
merge into ... 表示将数据合并到目标表中
using ... 表示使用哪个数据表进行合并
on ... 表示合并的条件
when ... then ... 表示合并时执行的操作
常见的 when 和 then 组合:
when matched then update:目标表有相同的记录,更新该记录的值
when not matched then insert:目标表不存在相同的记录,插入新的记录
when not matched by source then delete: 源表中不存在相同的记录,删除目标表中的记录