ALTER TABLE COLUMN-Klausel
Gilt für: Databricks SQL Databricks Runtime
Fügt eine Spalte in einer Tabelle oder einem Feld in einer Spalte in einer Delta Lake-Tabelle hinzu, ändert sie oder entfernt sie.
Erforderliche Berechtigungen
Wenn Sie Unity Catalog verwenden, müssen Sie über die MODIFY
-Berechtigung für Folgendes verfügen:
- ALTER COLUMN
- ADD COLUMN
- DROP COLUMN
Für alle anderen Vorgänge müssen Sie Eigentümer der Tabelle sein.
Syntax
ALTER TABLE table_name
{ ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause }
ADD COLUMN-Klausel
Diese Klausel wird für JDBC
-Datenquellen nicht unterstützt.
Fügt eine oder mehrere Spalten zu einer Tabelle oder Felder zu vorhandenen Spalten in einer Delta Lake-Tabelle hinzu.
Hinweis
Wenn Sie einer vorhandenen Delta-Tabelle eine Spalte hinzufügen, können Sie keinen DEFAULT
-Wert definieren. Alle Spalten, die Delta-Tabellen hinzugefügt werden, werden als NULL
für vorhandene Zeilen behandelt. Nachdem Sie eine Spalte hinzugefügt haben, können Sie optional einen Standardwert für die Spalte definieren, dies wird jedoch nur für neue Zeilen angewendet, die in die Tabelle eingefügt wurden. Verwenden Sie die folgende Syntax:
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_expression
Syntax
{ ADD [ COLUMN | COLUMNS ]
( { { column_identifier | field_name } data_type
[ DEFAULT clause ] [ COMMENT comment ] [ FIRST | AFTER identifier ]
[ MASK clause ] } [, ...] ) }
Parameter
-
Der Name der hinzuzufügenden Spalte. Der Name muss innerhalb der Tabelle eindeutig sein.
Sofern weder
FIRST
nochAFTER name
angegeben ist, wird die Spalte oder das Feld am Ende angefügt. -
Der vollqualifizierte Name des Felds, das einer vorhandenen Spalte hinzugefügt werden soll. Alle Komponenten des Pfads zum geschachtelten Feld müssen vorhanden sein, und der Feldname selbst muss eindeutig sein.
DEFAULT default_expression
Gilt für: Databricks SQL Databricks Runtime 11.3 LTS und höher
Definiert einen
DEFAULT
-Wert für die Spalte, der fürINSERT
undMERGE ... INSERT
verwendet wird, wenn die Spalte nicht angegeben ist.Wenn kein Standardwert angegeben ist, wird
DEFAULT NULL
für Nullable-Spalten impliziert.default_expression
kann aus Literalen und integrierten SQL-Funktionen oder -Operatoren bestehen, außer:- Aggregatfunktionen
- Analysefensterfunktionen
- Fensterrangfunktionen
- Tabellenwertgenerator-Funktionen
default_expression
darf keine Unterabfrage enthalten.DEFAULT
wird fürCSV
,JSON
,PARQUET
undORC
Quellen unterstützt.-
Gibt den Datentyp der Spalte oder des Felds an. Nicht alle Datentypen, die von Azure Databricks unterstützt werden, werden von allen Datenquellen unterstützt.
COMMENT comment
Ein optionales
STRING
-Literal, das die hinzugefügte Spalte oder das hinzugefügte Feld beschreibt.Wenn Sie einen KI-generierten Kommentar für eine von Unity Catalog verwaltete Tabelle oder Tabellenspalte hinzufügen möchten, lesen Sie Hinzufügen von KI-generierten Kommentaren zu Unity Catalog-Objekten.
FIRST
Wenn angegeben, wird die Spalte als erste Spalte der Tabelle oder das Feld als erstes Feld in der Struktur hinzugefügt.
AFTER
identifierWenn angegeben, wird die Spalte oder das Feld unmittelbar nach dem Feld oder der Spalte
identifier
hinzugefügt.-
Gilt für: Databricks SQL Databricks Runtime 12.2 LTS und höher Nur Unity Catalog
Wichtig
Dieses Feature befindet sich in der Public Preview.
Fügt eine Spaltenmaskierungsfunktion hinzu, um vertrauliche Zeichenfolgenwerte zu anonymisieren. Alle zukünftigen Abfragen von dieser Spalte erhalten das Ergebnis der Auswertung dieser Funktion über die Spalte anstelle des ursprünglichen Wertes der Spalte. Dies kann für eine präzise Zugriffssteuerung nützlich sein, bei der die Funktion die Identität oder Gruppenmitgliedschaft der aufrufenden Benutzer überprüfen kann, um zu entscheiden, ob der Wert zurückgezogen werden soll.
ALTER COLUMN-Klausel
Gilt für: Databricks SQL Databricks Runtime
Ändert eine Eigenschaft oder die Position einer Spalte.
Syntax
{ { ALTER | CHANGE } [ COLUMN ] { column_identifier | field_name }
{ COMMENT comment |
{ FIRST | AFTER column_identifier } |
{ SET | DROP } NOT NULL |
TYPE data_type |
SET DEFAULT clause |
DROP DEFAULT |
SYNC IDENTITY |
SET { MASK clause } |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause } }
Parameter
-
Der Name der Spalte, die geändert werden soll.
-
Der vollqualifizierte Name des zu ändernden Felds. Alle Komponenten des Pfads zum geschachtelten Feld müssen vorhanden sein.
COMMENT comment
Ändert die Beschreibung der
column_name
-Spalte.comment
muss einSTRING
-Literal sein.FIRST
- oderAFTER
-BezeichnerVerschiebt die Spalte von ihrer aktuellen Position an den Anfang (
FIRST
) oder direkt hinter(AFTER
)identifier
. Diese Klausel wird nur unterstützt, wenntable_name
eine Delta-Tabelle ist.TYPE
data_typeGilt für: Databricks SQL Databricks Runtime 15.2 und höher
Ändert den Datentyp der
column_name
-SpalteDiese Klausel wird nur unterstützt, wenn
table_name
eine Delta-Tabelle ist.Die folgenden Typänderungen werden für alle Delta-Tabellen unterstützt:
- Erhöhen der Größe einer
VARCHAR
-Spalte, z. B. vonVARCHAR(5)
aufVARCHAR(10)
- Ändern des Typs einer
CHAR
-Spalte in eineVARCHAR
, z. B. vonCHAR(5)
inVARCHAR(5)
- Ändern des Typs einer
CHAR
- oderVARCHAR
-Spalte in eineSTRING
, z. B. vonVARCHAR(10)
inSTRING
Die folgenden Typänderungen werden für alle Delta-Tabellen unterstützt, wenn
delta.enableTypeWidening
auftrue
festgelegt ist:Wichtig
Dieses Feature befindet sich in Databricks Runtime 15.2 und höheren Versionen in Public Preview.
Quellentyp Unterstützte breitere Typen BYTE
SHORT
,INT
,BIGINT
,DECIMAL
,DOUBLE
SHORT
INT
,BIGINT
,DECIMAL
,DOUBLE
INT
BIGINT
,DECIMAL
,DOUBLE
BIGINT
DECIMAL
,DOUBLE
FLOAT
DOUBLE
DECIMAL
DECIMAL
mit größerer Präzision und SkalierungDATE
TIMESTAMP_NTZ
Ausführlichere Informationen zur Typerweiterung finden Sie unter Typerweiterung.
- Erhöhen der Größe einer
SET NOT NULL
oderDROP NOT NULL
Ändert die Domäne gültiger Spaltenwerte, um NULL-Werte auszuschließen (
SET NOT NULL
) oder NULL-Werte einzuschließen (DROP NOT NULL
). Diese Option wird nur für Delta Lake-Tabellen unterstützt. Delta Lake stellt sicher, dass die Einschränkung für alle vorhandenen und neuen Daten gilt.SYNC IDENTITY
Gilt für: Databricks SQL Databricks Runtime 10.4 LTS und höher
Synchronisiert die Metadaten einer Identitätsspalte mit den tatsächlichen Daten. Wenn Sie eigene Werte in eine Identitätsspalte schreiben, entsprechen diese möglicherweise nicht den Metadaten. Diese Option wertet den Status aus und aktualisiert die Metadaten, damit sie mit den tatsächlichen Daten stimmig sind. Nach diesem Befehl beginnt der nächste automatisch zugewiesene Identitätswert bei
start + (n + 1) * step
, wobein
der kleinste Wert ist, derstart + n * step >= max()
erfüllt (für einen positiven Schritt).Diese Option wird nur für Identitätsspalten in Delta Lake-Tabellen unterstützt.
DROP DEFAULT
Gilt für: Databricks SQL Databricks Runtime 11.3 LTS und höher
Entfernt den Standardausdruck aus der Spalte. Für Nullable-Spalten entspricht dies
SET DEFAULT NULL
. Für mitNOT NULL
definierte Spalten müssen Sie bei jeder zukünftigenINSERT
-Operation einen Wert angebenSET DEFAULT default_expression
Gilt für: Databricks SQL Databricks Runtime 11.3 LTS und höher
Definiert einen
DEFAULT
-Wert für die Spalte, der fürINSERT
undMERGE ... INSERT
verwendet wird, wenn die Spalte nicht angegeben ist.Wenn kein Standardwert angegeben ist, wird
DEFAULT NULL
für Nullable-Spalten impliziert.default_expression
kann aus Literalen, integrierten SQL-Funktionen oder Operatoren bestehen, außer:- Aggregatfunktionen
- Analysefensterfunktionen
- Fensterrangfunktionen
- Tabellenwertgenerator-Funktionen
default_expression
darf keine Unterabfrage enthalten.DEFAULT
wird fürCSV
,JSON
,ORC
undPARQUET
Quellen unterstützt.Wenn Sie den Standardwert für eine neu hinzugefügte Spalte definieren, gilt der Standardwert für alle bereits vorhandenen Zeilen. Wenn der Standardwert eine nicht deterministische Funktion wie
rand
odercurrent_timestamp
enthält, wird der Wert einmal berechnet, wennALTER TABLE
ausgeführt wird, und als Konstante auf bereits vorhandene Zeilen angewendet. Für neu eingefügte Zeilen wird der Standardausdruck einmal pro Zeile ausgeführt.Wenn Sie einen Standard mit
ALTER COLUMN
festlegen, sind vorhandene Zeilen von dieser Änderung nicht betroffen.SET
MASK-KlauselGilt für: Databricks SQL Databricks Runtime 12.2 LTS und höher Nur Unity Catalog
Wichtig
Dieses Feature befindet sich in der Public Preview.
Fügt eine Spaltenmaskierungsfunktion hinzu, um vertrauliche Zeichenfolgenwerte zu anonymisieren. Alle zukünftigen Abfragen von dieser Spalte erhalten das Ergebnis der Auswertung dieser Funktion über die Spalte anstelle des ursprünglichen Wertes der Spalte. Dies kann für eine präzise Zugriffssteuerung nützlich sein, bei der die Funktion die Identität oder Gruppenmitgliedschaft der aufrufenden Benutzer überprüfen kann, um zu entscheiden, ob der Wert zurückgezogen werden soll.
DROP MASK
Gilt für: Nur Unity Catalog
Wichtig
Dieses Feature befindet sich in der Public Preview.
Entfernt das Spaltenformat für diese Spalte, sofern vorhanden. Zukünftige Abfragen aus dieser Spalte erhalten die ursprünglichen Werte der Spalte.
SET TAGS ( { tag_name = tag_value } [, ...] )
Gilt für: Databricks SQL Databricks Runtime 13.3 LTS und höher
Wenden Sie Tags auf die Spalte an. Sie benötigen die Berechtigung
APPLY TAG
, um Tags zur Spalte hinzufügen zu können.tag_name
Ein
STRING
-Literal.tag_name
muss innerhalb der Tabelle oder Spalte eindeutig sein.tag_value
Ein
STRING
-Literal.
UNSET TAGS ( tag_name [, ...] )
Gilt für: Databricks SQL Databricks Runtime 13.3 LTS und höher
Entfernen Sie Tags aus der Spalte. Sie benötigen die Berechtigung
APPLY TAG
, um Tags aus der Spalte entfernen zu können.tag_name
Ein
STRING
-Literal.tag_name
muss innerhalb der Tabelle oder Spalte eindeutig sein.
DROP COLUMN-Klausel
Wichtig
Dieses Feature befindet sich in der Public Preview.
Gilt für: Databricks SQL Databricks Runtime 11.3 LTS und höher
Legen Sie eine oder mehrere Spalten oder Felder in einer Delta Lake-Tabelle ab.
Wenn Sie eine Spalte oder ein Feld löschen, müssen Sie auch abhängige Überprüfungseinschränkungen und generierte Spalten löschen.
Anforderungen finden Sie unter Rename and drop columns with Delta Lake column mapping (Umbenennen und Löschen von Spalten mit Delta Lake-Spaltenzuordnung).
Syntax
DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )
Parameter
IF EXISTS
Wenn Sie
IF EXISTS
angeben, ignoriert Azure Databricks den Versuch, nicht vorhandene Spalten zu löschen. Andernfalls verursacht das Ablegen nicht vorhandener Spalten einen Fehler.-
Der Name der vorhandenen Spalte.
-
Der vollqualifizierte Name eines vorhandenen Felds.
RENAME COLUMN-Klausel
Wichtig
Dieses Feature befindet sich in der Public Preview.
Gilt für: Databricks SQL Databricks Runtime 11.3 LTS und höher
Benennt eine Spalte oder ein Feld in einer Delta Lake-Tabelle um.
Wenn Sie eine Spalte oder ein Feld umbenennen, müssen Sie auch abhängige CHECK-Einschränkungen und generierte Spalten ändern. Alle Primärschlüssel und Fremdschlüssel, die die Spalte verwenden, werden gelöscht. Bei Fremdschlüsseln müssen Sie der Besitzer der Tabelle sein, für die der Fremdschlüssel definiert ist.
Anforderungen finden Sie unter Rename and drop columns with Delta Lake column mapping (Umbenennen und Löschen von Spalten mit Delta Lake-Spaltenzuordnung).
Syntax
RENAME COLUMN { column_identifier TO to_column_identifier|
field_name TO to_field_identifier }
Parameter
-
Der vorhandene Name der Spalte.
-
Der neue Spaltenbezeichner. Der Bezeichner muss innerhalb der Tabelle eindeutig sein.
-
Der vorhandene vollqualifizierte Name eines Felds.
-
Der neue Feldbezeichner. Der Bezeichner muss innerhalb der lokalen Struktur eindeutig sein.
Beispiele
Siehe ALTER TABLE-Beispiele.