

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`
<a name="alter-table-syntax-support"></a>

`ALTER TABLE` ändert die Definition einer Tabelle.

```
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    action [, ... ]
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    RENAME [ COLUMN ] column_name TO new_column_name
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    RENAME CONSTRAINT constraint_name TO new_constraint_name
ALTER TABLE [ IF EXISTS ] name
    RENAME TO new_name
ALTER TABLE [ IF EXISTS ] name
    SET SCHEMA new_schema

where action is one of:

    ADD [ COLUMN ] [ IF NOT EXISTS ] column_name data_type
    ADD table_constraint_using_index
    ALTER [ COLUMN ] column_name { SET GENERATED { ALWAYS | BY DEFAULT } | SET sequence_option | RESTART [ [ WITH ] restart ] } [...]
    ALTER [ COLUMN ] column_name DROP IDENTITY [ IF EXISTS ]
    OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }

and table_constraint_using_index is:

    [ CONSTRAINT constraint_name ]
    UNIQUE USING INDEX index_name
```

## Aktionen in der Spalte „Identität“
<a name="alter-table-identity-columns"></a>

**`SET GENERATED { ALWAYS | BY DEFAULT }` / `SET sequence_option` / `RESTART`**  
Diese Formulare ändern, ob es sich bei einer Spalte um eine Identitätsspalte handelt, oder ändern das Generierungsattribut einer vorhandenen Identitätsspalte. Details dazu finden Sie unter [`CREATE TABLE`](create-table-syntax-support.md). `SET DEFAULT`Ebenso wirken sich diese Formulare nur auf das Verhalten der nachfolgenden `UPDATE` Befehle `INSERT` und aus; sie bewirken nicht, dass Zeilen, die sich bereits in der Tabelle befinden, geändert werden.  
Das *sequence\$1option* ist eine Option, die von [`ALTER SEQUENCE`](alter-sequence-syntax-support.md) z. B. unterstützt wird`INCREMENT BY`. Diese Formulare ändern die Reihenfolge, die einer vorhandenen Identitätsspalte zugrunde liegt.

**`DROP IDENTITY [ IF EXISTS ]`**  
Dieses Formular entfernt die Identitätseigenschaft aus einer Spalte. Wenn angegeben `DROP IDENTITY IF EXISTS` ist und es sich bei der Spalte nicht um eine Identitätsspalte handelt, wird kein Fehler ausgegeben. In diesem Fall wird stattdessen eine Mitteilung herausgegeben.

## Fügen Sie Beschränkungsaktionen hinzu
<a name="alter-table-add-constraint"></a>

**`ADD table_constraint_using_index`**  
Dieses Formular fügt einer Tabelle eine neue `UNIQUE` Einschränkung hinzu, die auf einem vorhandenen eindeutigen Index basiert. Alle Spalten des Indexes werden in die Einschränkung aufgenommen.  
Der Index muss sich in einem bestimmten `VALID` Status befinden. Das Hinzufügen einer eindeutigen Einschränkung mithilfe eines Indexes, während der Index gerade erstellt wird, wird nicht unterstützt.  
Wenn ein Einschränkungsname angegeben wird, wird der Index so umbenannt, dass er dem Einschränkungsnamen entspricht. Andernfalls wird die Einschränkung genauso benannt wie der Index.  
Nachdem dieser Befehl ausgeführt wurde, gehört der Index der Einschränkung, genau so, als ob der Index durch einen regulären `CREATE UNIQUE INDEX ASYNC` Befehl erstellt worden wäre. Insbesondere wird durch das Löschen der Einschränkung auch der Index verschwinden.