

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

Aggiorna, elimina o inserisce in modo condizionale righe in una tabella Iceberg. Una singola istruzione può combinare operazioni di aggiornamento, eliminazione e inserimento. Per la sintassi, consulta [MERGE INTO](merge-into-statement.md).

**Nota**  
L'istruzione `MERGE INTO` è transazionale ed è supportata solo per le tabelle Apache Iceberg nella versione 3 del motore Athena.

L'esempio seguente elimina tutti i clienti dalla tabella `t` che si trova nella tabella di origine `s`.

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

L'esempio seguente aggiorna la tabella di destinazione `t` con le informazioni sui clienti dalla tabella di origine `s`. Per le righe dei clienti nella tabella `t` che contengono righe relative ai clienti nella tabella `s`, l'esempio incrementa gli acquisti nella tabella t. Se la tabella `t` non corrisponde a una riga del cliente nella tabella `s`, l'esempio inserisce la riga del cliente dalla tabella `s` nella tabella `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)
```

L'esempio seguente aggiorna in modo condizionale la tabella di destinazione `t` con le informazioni dalla tabella di origine `s`. L'esempio elimina qualsiasi riga di destinazione corrispondente il cui indirizzo di origine è Centreville. Per tutte le altre righe corrispondenti, l'esempio aggiunge gli acquisti di origine e imposta l'indirizzo di destinazione sull'indirizzo di origine. Se non c'è alcuna corrispondenza nella tabella di destinazione, l'esempio inserisce la riga dalla tabella di origine.

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