View a markdown version of this page

ALTER TABLE - Amazon Aurora DSQL

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 EXISTS ist 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 UPDATE Befehle INSERT oder. 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 EXISTS ist 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 IDENTITY
SET 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 nachfolgenden UPDATE Befehle INSERT und aus; sie bewirken nicht, dass Zeilen, die sich bereits in der Tabelle befinden, geändert werden.

Das sequence_option ist 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 IDENTITY einen expliziten CACHE Wert. Darüber hinaus werden Identitätsspalten nur für bigint Spalten 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.

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.

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 EXISTS angegeben 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 TABLE Ausdruck 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 Discord an uns.

OWNER TO

Mit diesem Formular wird der Besitzer der Tabelle auf den angegebenen Benutzer umgestellt.

RENAME

Die RENAME Formulare ä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 ONLY wird, wird nur diese Tabelle geändert. Wenn nicht ONLY angegeben, 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.