

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
<a name="merge-into-statement"></a>

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
<a name="merge-into-statement-synopsis"></a>

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 [...]
```

Das *when\$1clause* ist einer 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](querying-iceberg-updating-iceberg-table-data.md).