MERGE INTO - Amazon Athena

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

Aggiorna, elimina o inserisce in modo condizionale righe in una tabella Apache Iceberg. Una singola istruzione può combinare operazioni di aggiornamento, eliminazione e inserimento.

Nota

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

Riepilogo

Per aggiornare, eliminare o inserire in modo condizionale righe di una tabella Iceberg, utilizza la sintassi seguente.

MERGE INTO target_table [ [ AS ] target_alias ] USING { source_table | query } [ [ AS ] source_alias ] ON search_condition when_clause [...]

La clausola when_clause è una delle seguenti:

WHEN MATCHED [ AND condition ] THEN DELETE
WHEN MATCHED [ AND condition ] THEN UPDATE SET ( column = expression [, ...] )
WHEN NOT MATCHED [ AND condition ] THEN INSERT (column_name[, column_name ...]) VALUES (expression, ...)

MERGE supporta un numero arbitrario di clausole WHEN con condizioni MATCHED diverse. Le clausole condizionali eseguono l'operazione DELETE, UPDATE o INSERT nella prima clausola WHEN selezionata dallo stato MATCHED e dalla condizione corrispondente.

Per ogni riga di origine, le clausole WHEN vengono elaborate in ordine. Viene eseguita solo la prima clausola WHEN corrispondente. Le clausole successive vengono ignorate. Viene generato un errore utente quando una singola riga della tabella di destinazione corrisponde a più di una riga di origine.

Se una riga di origine non corrisponde ad alcuna clausola WHEN e non è presente alcuna clausola WHEN NOT MATCHED, la riga di origine viene ignorata.

Nelle clausole WHEN che prevedono operazioni UPDATE, le espressioni dei valori delle colonne possono fare riferimento a qualsiasi campo della destinazione o dell'origine. Nel caso di NOT MATCHED, le espressioni INSERT possono fare riferimento a qualsiasi campo dell'origine.

Esempio

L'esempio seguente unisce le righe della seconda tabella alla prima tabella se le righe non esistono nella prima tabella. Tieni presente che le colonne elencate nella clausola VALUES devono essere precedute dall'alias della tabella di origine. Le colonne di destinazione elencate nella clausola INSERT non devono avere questo prefisso.

MERGE INTO iceberg_table_sample as ice1 USING iceberg2_table_sample as ice2 ON ice1.col1 = ice2.col1 WHEN NOT MATCHED THEN INSERT (col1) VALUES (ice2.col1)

Per ulteriori esempi MERGE INTO, consulta Aggiorna i dati della tabella Iceberg.