《Oracle命令语法速查》【 MERGE 】

1つの表から行を選択し、他の表に更新または挿入する


MERGE [ ヒント ] INTO [ スキーマ . ] 表名 [ 別名 ] →
[ 更新/挿入の対象となる表を指定する ]
→ USING [ スキーマ . ] ┬ 表名 ──┬ [ 別名 ] →
                        ├ ビュー名 ┤
                        └ 副問合せ ┘
[ データソースを指定する ]
→ ON ( 条件式 ) →
[ 更新/挿入の条件を指定する(結果が真の場合は更新、偽の場合は挿入) ]
→ WHEN MATCHED THEN UPDATE SET ┬ 列名 = { 式 | DEFAULT }  ┬→
                                └ ← , ──────────┘
[ 各列に対する更新方法を指定する ]
→ WHEN NOT MATCHED THEN INSERT SET ( ┬ 列名 ┬ ) VALUES (  ┬ { 式 | DEFAULT } ┬ ) ;
                                      └ ← , ┘             └ ← , ──────┘
[ 各列に対する挿入方法を指定する ]