Oracle Merge操作用于合并两个表的记录: 1. 两个表有相同的列,但是有些记录的值不同;
Merge操作是INSERT(插入)和UPDATE语句的和。它可以让用户在一个操作中实现 INSERT 和UPDATE,以节省程序执行时间。
Merge语句总是从目标表开始执行,它是一个DML操作,也就是说,需要提交才能生效。
Marge语句的基本的结构如下:
MERGE INTO table_name A USING table_name B ON (condition) WHEN MATCHED THEN
UPDATE SET A.column1 = B.column1, A.column2 = B.column2 WHEN NOT MATCHED THEN
INSERT values (B.column1, B.column2); MERGE INTO子句
Merge Into子句用于定义目标表,并指定源表的别名。 USING子句
USING子句中,指定源表,以及两个表之间连接的条件(目标表和源表必须有相同的列) 。
WHEN MATCHED子句
在两个表中相同记录存在时执行更新,WHEN MATCHED子句中指定需要更新的列及其值 , UPDATE SET 子句用于指定更新列和值 WHEN NOT MATCHED子句 下面是一个Merge案例:
上面的案例中,使用id字段作为目标表和源表的连接条件,如果id字段在目标表和源表中有匹配的记录,则更新name和age字段的值,如果不存在,则插入name和age字段的值。
Merge 是一种非常有用的操作,它可以让我们把两个表中的记录进行合并,从而节省大量的程序执行时间。
因篇幅问题不能全部显示,请点此查看更多更全内容