MERGE INTO - Amazon Athena

MERGE INTO

Atualiza, exclui ou insere linhas de forma condicional em uma tabela do Iceberg. Uma única instrução pode combinar ações de atualização, exclusão e inserção. Para ver a sintaxe, consulte MERGE INTO.

nota

MERGE INTO é transacional e é compatível somente com tabelas do Apache Iceberg na versão 3 do mecanismo do Athena.

O exemplo a seguir exclui todos os clientes da tabela t que estão na tabela de origem s.

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

O exemplo a seguir atualiza a tabela de destino t com as informações do cliente presentes na tabela de origem s. Para linhas de clientes na tabela t que têm linhas de clientes correspondentes na tabela s, o exemplo incrementa as aquisições na tabela t. Se a tabela t não corresponder a uma linha de cliente na tabela s, o exemplo irá inserir a linha de cliente da tabela s na tabelat .

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)

O exemplo a seguir atualiza condicionalmente a tabela de destino t com informações presentes na tabela de origem s. O exemplo exclui qualquer linha de destino correspondente cujo endereço de origem seja “Centreville”. Para todas as outras linhas correspondentes, o exemplo adiciona as aquisições da origem e define o endereço de destino como o endereço da origem. Se não houver correspondência na tabela de destino, o exemplo irá inserir a linha da tabela de origem.

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)