MERGE INTO - Amazon Athena

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

MERGE INTO

Aktualisiert, löscht oder fügt Zeilen in eine Apache-Iceberg-Tabelle ein. Eine einzige Anweisung kann Aktionen zum Aktualisieren, Löschen und Einfügen kombinieren.

Anmerkung

MERGE INTO ist transaktionsbasiert und wird nur für Apache-Iceberg-Tabellen in Athena-Engine-Version 3 unterstützt.

Syntax

Verwenden Sie die folgende Syntax, um Zeilen in einer Iceberg-Tabelle bedingt zu aktualisieren, zu löschen oder einzufügen.

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

Die when_clause ist eine der folgenden:

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 unterstützt eine beliebige Anzahl von WHEN-Klauseln mit unterschiedlichen MATCHED-Bedingungen. Die Bedingungsklauseln führen die DELETE, UPDATE oder INSERT-Operation in der ersten WHEN-Klausel aus, die durch den MATCHED-Zustand und die Übereinstimmungsbedingung ausgewählt wurde.

Für jede Quellzeile werden die WHEN-Klauseln der Reihe nach verarbeitet. Nur die erste übereinstimmende WHEN-Klausel wird ausgeführt. Nachfolgende Klauseln werden ignoriert. Ein Benutzerfehler wird ausgegeben, wenn eine einzelne Zeile der Zieltabelle mit mehr als einer Quellzeile übereinstimmt.

Wenn eine Quellzeile mit keiner WHEN-Klausel übereinstimmt und es keine WHEN NOT MATCHED-Klausel gibt, wird die Quellzeile ignoriert.

In WHEN-Klauseln mit UPDATE-Operationen können sich die Spaltenwertausdrücke auf jedes Feld des Ziels oder der Quelle beziehen. Im NOT MATCHED-Fall können sich die INSERT-Ausdrücke auf ein beliebiges Feld der Quelle beziehen.

Beispiel

Im folgenden Beispiel werden Zeilen aus der zweiten Tabelle mit der ersten Tabelle zusammengeführt, wenn die Zeilen in der ersten Tabelle nicht vorhanden sind. Beachten Sie, dass den in der VALUES-Klausel aufgeführten Spalten der Alias der Quelltabelle vorangestellt werden muss. Den in der INSERT-Klausel aufgeführten Zielspalten darf kein solches Präfix vorangestellt werden.

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)

Weitere MERGE INTO-Beispiele finden Sie unter Iceberg-Tabellendaten aktualisieren.