MERGE INTO
条件付きで Iceberg テーブルに行を更新、削除、または挿入します。単一のステートメントで、更新、削除、挿入のアクションを組み合わせることができます。構文については、「MERGE INTO」を参照してください。
注記
MERGE INTO
はトランザクションで、Athena エンジンバージョン 3 の Apache Iceberg テーブルでのみサポートされています。
次の例では、ソーステーブル s
にあるテーブル t
からすべての顧客を削除します。
MERGE INTO accounts t USING monthly_accounts_update s ON t.customer = s.customer WHEN MATCHED THEN DELETE
次の例では、ソーステーブル s
の顧客情報でターゲットテーブル t
を更新します。テーブル s
内の顧客の行が一致する顧客行が t
にある場合、この例ではテーブル t の購入をインクリメントします。テーブル t
がテーブル s
内の顧客の行と一致しない場合、この例では、顧客の行をテーブル s
からテーブル t
に挿入します。
MERGE INTO accounts t USING monthly_accounts_update s ON (t.customer = s.customer) WHEN MATCHED THEN UPDATE SET purchases = s.purchases + t.purchases WHEN NOT MATCHED THEN INSERT (customer, purchases, address) VALUES(s.customer, s.purchases, s.address)
次の例では、ソーステーブル s
の情報でターゲットテーブル t
を条件付きで更新します。この例では、送信元アドレスが Centreville である一致するターゲット行をすべて削除します。一致するすべての行について、この例では送信元購入を追加し、ターゲットアドレスを送信元アドレスに設定します。ターゲットテーブルに一致するものがない場合、この例では送信元テーブルから行を挿入します。
MERGE INTO accounts t USING monthly_accounts_update s ON (t.customer = s.customer) WHEN MATCHED AND s.address = 'Centreville' THEN DELETE WHEN MATCHED THEN UPDATE SET purchases = s.purchases + t.purchases, address = s.address WHEN NOT MATCHED THEN INSERT (customer, purchases, address) VALUES(s.customer, s.purchases, s.address)