MERGE INTO - Amazon Athena

MERGE INTO

有条件地更新行、删除行或将行插入到 Iceberg 表中。单个语句可以组合更新、删除和插入操作。有关语法,请参阅 MERGE INTO

注意

MERGE INTO 是事务性的,仅支持用于 Athena 引擎版本 3 中的 Apache Iceberg 表。

以下示例从表 t 中删除源表 s 中的所有客户。

MERGE INTO accounts t USING monthly_accounts_update s ON t.customer = s.customer WHEN MATCHED THEN DELETE

以下示例使用源表 s 中的客户信息更新目标表 t。如果表 t 与表 s 中的客户行匹配,则该示例会增加表 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)