

# MERGE INTO
<a name="querying-iceberg-merge-into"></a>

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](merge-into-statement.md).

**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 tabela`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)
```

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)
```