

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.

# ALTER TABLE REPLACE COLUMNS
<a name="alter-table-replace-columns"></a>

Entfernt alle vorhandenen Spalten aus einer Tabelle, die mit dem erstellt wurde, [LazySimpleSerDe](lazy-simple-serde.md)und ersetzt sie durch den angegebenen Spaltensatz. Bei Verwendung der optionalen Syntax `PARTITION` werden Partitionsmetadaten aktualisiert. Sie können `ALTER TABLE REPLACE COLUMNS` auch verwenden, um Spalten zu löschen, indem Sie nur die Spalten angeben, die Sie behalten möchten.

## Syntax
<a name="synopsis"></a>

```
ALTER TABLE table_name 
  [PARTITION 
   (partition_col1_name = partition_col1_value
   [,partition_col2_name = partition_col2_value][,...])]
  REPLACE COLUMNS (col_name data_type [, col_name data_type, ...])
```

## Parameters
<a name="parameters"></a>

**PARTITION (partition\_col\_name = partition\_col\_value [,...])**  
Gibt eine Partition mit den von Ihnen angegebenen name/value Spaltenkombinationen an. Umschließen Sie `partition_col_value` nur dann mit Anführungszeichen, wenn es sich beim Datentyp der Spalte um eine Zeichenfolge handelt.

**REPLACE COLUMNS (col\_name data\_type [,col\_name data\_type,…])**  
Ersetzt vorhandene Spalten durch die angegebenen Spaltennamen und Datentypen.

## Hinweise
<a name="alter-table-replace-columns-notes"></a>
+ Um die Änderung der Tabellenspalten im Navigationsbereich des Athena-Abfrage-Editors anzuzeigen, nachdem Sie `ALTER TABLE REPLACE COLUMNS` ausgeführt haben, müssen Sie möglicherweise die Tabellenliste im Editor manuell aktualisieren und die Tabelle dann erneut erweitern.
+ `ALTER TABLE REPLACE COLUMNS` funktioniert nicht für Spalten mit dem `date`-Datentyp Um dieses Problem zu umgehen, verwenden Sie stattdessen den `timestamp`-Datentyp in der Tabelle.
+ Beachten Sie, dass die Syntax `ALTER TABLE {{table-name}} REPLACE COLUMNS` sein muss, auch wenn Sie nur eine einzelne Spalte ersetzen, mit *Spalten* im Plural. Sie müssen nicht nur die Spalte angeben, die Sie ersetzen möchten, sondern auch die Spalten, die Sie beibehalten möchten. Andernfalls werden die Spalten, die Sie nicht angeben, gelöscht. Diese Syntax und dieses Verhalten leitet sich von Apache Hive DDL ab. Weitere Informationen finden Sie unter [Spalten hinzufügen/ersetzen](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Add/ReplaceColumns) in der Apache-Dokumentation. 

## Beispiel
<a name="alter-table-replace-columns-example"></a>

Im folgenden Beispiel hat die Tabelle`names_cities`, die mit dem erstellt wurde [LazySimpleSerDe](lazy-simple-serde.md), drei Spalten mit den Namen `col1``col2`, und`col3`. Alle Spalten sind vom Typ `string`. Um die Spalten in der Tabelle anzuzeigen, verwendet der folgende Befehl die [SHOW COLUMNS](show-columns.md)-Anweisung.

```
SHOW COLUMNS IN names_cities
```

Ergebnis der Abfrage:

```
col1
col2
col3
```

Der folgende `ALTER TABLE REPLACE COLUMNS`-Befehl ersetzt die Spaltennamen durch `first_name`, `last_name`, und `city`. Die zugrunde liegenden Quelldaten sind nicht betroffen.

```
ALTER TABLE names_cities
REPLACE COLUMNS (first_name string, last_name string, city string)
```

Um das Ergebnis zu testen, wird `SHOW COLUMNS` erneut ausgeführt.

```
SHOW COLUMNS IN names_cities
```

Ergebnis der Abfrage:

```
first_name
last_name
city
```

Eine andere Möglichkeit, die neuen Spaltennamen anzuzeigen, besteht darin, eine [Vorschau der Tabelle](creating-tables-showing-table-information.md) im Athena-Abfrage-Editor anzuzeigen oder Ihre eigene `SELECT`-Abfrage auszuführen.