

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

Actualiza, elimina o inserta filas en una tabla de Iceberg de forma condicional. Una sola instrucción puede combinar acciones de actualización, eliminación e inserción. Para ver la sintaxis, consulte [MERGE INTO](merge-into-statement.md).

**nota**  
`MERGE INTO` es transaccional y solo es compatible con las tablas de Apache Iceberg en la versión 3 del motor Athena.

El siguiente ejemplo elimina todos los clientes de la tabla `t` que se encuentran en la tabla de origen `s`.

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

En el siguiente ejemplo, se actualiza la tabla de destino `t` con la información del cliente de la tabla de origen `s`. Para las filas de clientes de la tabla `t` que tienen filas de clientes coincidentes en la tabla `s`, el ejemplo incrementa las compras de la tabla t. Si la tabla `t` no coincide con ninguna fila de clientes de la tabla `s`, en el ejemplo se inserta la fila de clientes de una tabla `s` a otra `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)
```

El siguiente ejemplo actualiza condicionalmente la tabla de destino `t` con información de la tabla de origen `s`. El ejemplo elimina cualquier fila de destino coincidente cuya dirección de origen sea Centreville. Para todas las demás filas coincidentes, el ejemplo agrega las compras de origen y establece la dirección de destino en la dirección de origen. Si no hay ninguna coincidencia en la tabla de destino, el ejemplo inserta la fila de la tabla de origen.

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