本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
有條件地更新、刪除資料列或將其插入至 Iceberg 資料表。單一陳述式可以組合更新、刪除和插入動作。如需語法,請參閱合併為。
注意
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
。此範例會刪除來源地址為森特維爾的任何相符的目標資料列。對於所有其他相符的資料列,此範例會新增來源購買項目,並將目標地址設定為來源地址。如果目標資料表中沒有相符項目,則範例會從來源資料表插入資料列。
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)