Oracle21c MERGEで別テーブルから更新と挿入を行う

環境
Windows 11 Pro 21H2 64bit
Oracle Database 21c Express Edition Release 21.0.0.0.0
A5:SQL Mk-2

書式
MERGE INTO テーブル1 USING テーブル2
ON テーブル1.列1 = テーブル2.列1

WHEN MATCHED THEN
UPDATE SET
列名 = テーブル2.列名1,…

WHEN NOT MATCHED THEN
INSERT (列名, 列名 ・・・ )
VALUES (テーブル2.列名1, ・・・ );

使用例
テーブル「TEST2」を使って「TEST」にデータがあれば更新して、なければ挿入します

SQL構文

MERGE INTO TEST USING TEST2 
ON ( TEST.userid = TEST2.userid )

WHEN MATCHED THEN UPDATE SET
  username = TEST2.username, age = TEST2.age
WHEN NOT MATCHED THEN 
   INSERT (userid, username, age) 
   VALUES (TEST2.userid, TEST2.username, TEST2.age);

 

Oracle 21c

Posted by arkgame