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
ALTER TABLE ändert die Definition einer Tabelle.
Unterstützte Syntax
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 [ STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT } ] ALTER [ COLUMN ] column_name SET DEFAULT expression ALTER [ COLUMN ] column_name DROP DEFAULT ALTER [ COLUMN ] column_name DROP NOT NULL ALTER [ COLUMN ] column_name DROP EXPRESSION [ IF EXISTS ] ALTER [ COLUMN ] column_name ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( sequence_options ) ] ALTER [ COLUMN ] column_name { SET GENERATED { ALWAYS | BY DEFAULT } | SET sequence_option | RESTART [ [ WITH ] restart ] } [...] ALTER [ COLUMN ] column_name DROP IDENTITY [ IF EXISTS ] ALTER [ COLUMN ] column_name SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT } ADD table_constraint_using_index DROP CONSTRAINT [ IF EXISTS ] constraint_name [ RESTRICT | CASCADE ] OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } and table_constraint_using_index is: [ CONSTRAINT constraint_name ] UNIQUE USING INDEX index_name
Description
ADD [ COLUMN ] [ IF NOT EXISTS ]-
Dieses Formular fügt der Tabelle eine neue Spalte hinzu, wobei dieselbe Syntax wie verwendet wirdCREATE TABLE. Wenn angegeben
IF NOT EXISTSist und bereits eine Spalte mit diesem Namen existiert, wird kein Fehler ausgegeben. SET/DROP DEFAULT-
In diesen Formularen wird der Standardwert für eine Spalte festgelegt oder entfernt (wobei das Entfernen dem Setzen des Standardwerts auf NULL entspricht). Der neue Standardwert gilt nur für nachfolgende
UPDATEBefehleINSERToder. Er führt nicht dazu, dass Zeilen, die sich bereits in der Tabelle befinden, geändert werden. DROP NOT NULL-
Dieses Formular ändert eine Spalte, sodass Nullwerte zulässig sind.
DROP EXPRESSION [ IF EXISTS ]-
Dieses Formular wandelt eine gespeicherte generierte Spalte in eine normale Basisspalte um. Bestehende Daten in den Spalten werden beibehalten, aber bei future Änderungen wird der Generierungsausdruck nicht mehr angewendet. Wenn angegeben
DROP EXPRESSION IF EXISTSist und es sich bei der Spalte nicht um eine generierte Spalte handelt, wird kein Fehler ausgegeben. In diesem Fall wird stattdessen eine Mitteilung herausgegeben. ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITYSET GENERATED { ALWAYS | BY DEFAULT }DROP IDENTITY [ IF EXISTS ]-
Diese Formulare ändern, ob es sich bei einer Spalte um eine Identitätsspalte handelt, oder sie ändern das Generierungsattribut einer vorhandenen Identitätsspalte. Details dazu finden Sie unter CREATE TABLE.
SET DEFAULTEbenso wirken sich diese Formulare nur auf das Verhalten der nachfolgendenUPDATEBefehleINSERTund aus; sie bewirken nicht, dass Zeilen, die sich bereits in der Tabelle befinden, geändert werden.Das
sequence_optionist eine Option, die von ALTER SEQUENCE z. B. unterstützt wirdINCREMENT BY. Diese Formulare ändern die Reihenfolge, die einer vorhandenen Identitätsspalte zugrunde liegt.Anmerkung
Amazon Aurora DSQL erfordert bei der Verwendung
ADD GENERATED AS IDENTITYeinen explizitenCACHEWert. Darüber hinaus werden Identitätsspalten nur fürbigintSpalten unterstützt.Bei der Verwendung von Identitätsspalten sollte der Cache-Wert sorgfältig abgewogen werden. Weitere Informationen finden Sie in der Erläuterung „Wichtig“ auf der CREATE SEQUENCE Seite.
Hinweise zur optimalen Verwendung von Identitätsspalten auf der Grundlage von Workload-Mustern finden Sie unterArbeiten mit Sequenzen und Identitätsspalten.
SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT }-
Dieses Formular legt den Speichermodus für eine Spalte fest. Einzelheiten zu den verfügbaren Speichermodi finden Sie Speichermodus auf der CREATE TABLE Seite.
ADDtable_constraint_using_index-
Dieses Formular fügt einer Tabelle eine neue
UNIQUEEinschrä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
VALIDStatus 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 ASYNCBefehl erstellt worden wäre. Insbesondere wird durch das Löschen der Einschränkung auch der Index verschwinden. DROP CONSTRAINT [ IF EXISTS ]-
Dieses Formular löscht die angegebene Einschränkung für eine Tabelle zusammen mit allen Indizes, die der Einschränkung zugrunde liegen. Wenn
IF EXISTSangegeben und die Einschränkung nicht existiert, wird kein Fehler ausgegeben. In diesem Fall wird stattdessen eine Mitteilung herausgegeben.Wichtig
Derzeit wird das Hinzufügen einer neuen Einschränkung mit dem
CREATE TABLEAusdruck unterstützt.ALTER TABLE ADD CONSTRAINT(Spiegelungsunterstützung fürDROP CONSTRAINT) ist noch nicht verfügbar. Wenn Sie Fragen zu dieser kommenden Funktion haben, wenden Sie sich bitte an den AWS-Support oder wenden Sie sich direkt über den DSQL Public Discordan uns. OWNER TO-
Mit diesem Formular wird der Besitzer der Tabelle auf den angegebenen Benutzer umgestellt.
RENAME-
Die
RENAMEFormulare ändern den Namen einer Tabelle, den Namen einer einzelnen Spalte in einer Tabelle oder den Namen einer Einschränkung der Tabelle. Wenn Sie eine Einschränkung umbenennen, der ein Index zugrunde liegt, wird auch der Index umbenannt. Es hat keine Auswirkung auf die gespeicherten Daten. SET SCHEMA-
Dieses Formular verschiebt die Tabelle in ein anderes Schema. Zugeordnete Indizes, Einschränkungen und Sequenzen, die Tabellenspalten gehören, werden ebenfalls verschoben.
Parameters
IF EXISTS-
Geben Sie keinen Fehler aus, wenn die Tabelle nicht existiert. In diesem Fall wird eine Mitteilung ausgegeben.
name-
Der Name (optional schemaqualifiziert) einer vorhandenen Tabelle, die geändert werden soll. Wenn vor dem Tabellennamen angegeben
ONLYwird, wird nur diese Tabelle geändert. Wenn nichtONLYangegeben, werden die Tabelle und alle ihre untergeordneten Tabellen (falls vorhanden) geändert. Optional*kann hinter dem Tabellennamen angegeben werden, um explizit darauf hinzuweisen, dass abgeleitete Tabellen eingeschlossen sind. column_name-
Name einer neuen oder vorhandenen Spalte.
new_column_name-
Neuer Name für eine vorhandene Spalte.
new_name-
Neuer Name für die Tabelle.
data_type-
Datentyp der neuen Spalte.
constraint_name-
Name einer neuen oder vorhandenen Einschränkung.
CASCADE-
Löscht automatisch Objekte, die von der gelöschten Einschränkung abhängen (z. B. Ansichten, die auf die Spalte verweisen), und wiederum alle Objekte, die von diesen Objekten abhängen.
RESTRICT-
Weigert sich, die Einschränkung aufzuheben, wenn es abhängige Objekte gibt. Dies ist das Standardverhalten.
new_owner-
Der Benutzername des neuen Besitzers der Tabelle.
new_schema-
Der Name des Schemas, in das die Tabelle verschoben wird.