merge into可以同时从一个或多个源表对目标表进行更新、插入、删除数据,经常用于操作大量的数据,即对于大批量的数据更新、插入时效率极高。
--例句:
MERGE INTO A USING B ON A.ID_NO=B.ID
WHEN MATCHED THEN UPDATE/DELETE SET A.NAME=B.NAME,A.SCORE=B.SCORE
WHEN NOT MATCHED THEN INSERT (A.ID_NO,A.NAME,A.SCORE) VALUES (B.ID,B.NAME,B.SCORE);
释义:以A表为目标表,若A表中ID_NO不存在和B表(源表)中ID相等的,则插入A表;否则,把B表中的值更新到A表对应的记录中。
A表:
B表:
MERGE INTO TB_TEST A USING TB_IMPORT B ON (A.ID=B.ID)
WHEN MATCHED THEN UPDATE SET A.NAME=B.NAME
WHEN NOT MATCHED THEN INSERT (A.ID,A.NAME) VALUES (B.ID,B.NAME);
结果:A表: