Freigeben über


ALTER TABLE COLUMN-Klausel

Gilt für: durch Häkchen mit „Ja“ markiert Databricks SQL Häkchen gesetzt ja 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

  • column_identifier

    Der Name der hinzuzufügenden Spalte. Der Name muss innerhalb der Tabelle eindeutig sein.

    Sofern weder FIRST noch AFTER name angegeben ist, wird die Spalte oder das Feld am Ende angefügt.

  • field_name

    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: Häkchen ja Databricks SQL Häkchen Databricks Runtime 11.3 LTS und höher

    Definiert einen DEFAULT-Wert für die Spalte, der für INSERT und MERGE ... 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:

    default_expression darf keine Unterabfrage enthalten.

    DEFAULT wird für CSV, JSON, PARQUET und ORC Quellen unterstützt.

  • data_type

    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.

  • AFTERidentifier

    Wenn angegeben, wird die Spalte oder das Feld unmittelbar nach dem Feld oder der Spalte identifier hinzugefügt.

  • MASK-Klausel

    Gilt für: Häkchen ja Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime 12.2 LTS und höher durch Häkchen mit „Ja“ markiert 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: durch Häkchen mit „Ja“ markiert Databricks SQL Häkchen gesetzt ja 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

  • column_identifier

    Der Name der Spalte, die geändert werden soll.

  • field_name

    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 ein STRING-Literal sein.

  • FIRST- oder AFTER-Bezeichner

    Verschiebt die Spalte von ihrer aktuellen Position an den Anfang (FIRST) oder direkt hinter(AFTER) identifier. Diese Klausel wird nur unterstützt, wenn table_name eine Delta-Tabelle ist.

  • TYPEdata_type

    Gilt für: Häkchen gesetzt ja Databricks SQL Häkchen gesetzt ja Databricks Runtime 15.2 und höher

    Ändert den Datentyp der column_name-Spalte

    Diese 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. von VARCHAR(5) auf VARCHAR(10)
    • Ändern des Typs einer CHAR-Spalte in eine VARCHAR, z. B. von CHAR(5) in VARCHAR(5)
    • Ändern des Typs einer CHAR- oder VARCHAR-Spalte in eine STRING, z. B. von VARCHAR(10) in STRING

    Die folgenden Typänderungen werden für alle Delta-Tabellen unterstützt, wenn delta.enableTypeWidening auf true 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 Skalierung
    DATE TIMESTAMP_NTZ

    Ausführlichere Informationen zur Typerweiterung finden Sie unter Typerweiterung.

  • SET NOT NULL oder DROP 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: Häkchen ja Databricks SQL Häkchen 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, wobei n der kleinste Wert ist, der start + 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: Häkchen ja Databricks SQL Häkchen 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 mit NOT NULL definierte Spalten müssen Sie bei jeder zukünftigen INSERT-Operation einen Wert angeben

  • SET DEFAULT default_expression

    Gilt für: Häkchen ja Databricks SQL Häkchen Databricks Runtime 11.3 LTS und höher

    Definiert einen DEFAULT-Wert für die Spalte, der für INSERT und MERGE ... 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:

    default_expression darf keine Unterabfrage enthalten.

    DEFAULT wird für CSV, JSON, ORC und PARQUET 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 oder current_timestamp enthält, wird der Wert einmal berechnet, wenn ALTER 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.

  • SETMASK-Klausel

    Gilt für: Häkchen ja Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime 12.2 LTS und höher durch Häkchen mit „Ja“ markiert 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: Häkchen gesetzt ja 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: Häkchen gesetzt ja Databricks SQL Häkchen gesetzt ja 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: Häkchen gesetzt ja Databricks SQL Häkchen gesetzt ja 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: Häkchen ja Databricks SQL Häkchen 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.

  • column_identifier

    Der Name der vorhandenen Spalte.

  • field_name

    Der vollqualifizierte Name eines vorhandenen Felds.

RENAME COLUMN-Klausel

Wichtig

Dieses Feature befindet sich in der Public Preview.

Gilt für: Häkchen ja Databricks SQL Häkchen 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

  • column_identifier

    Der vorhandene Name der Spalte.

  • to_column_identifier

    Der neue Spaltenbezeichner. Der Bezeichner muss innerhalb der Tabelle eindeutig sein.

  • field_name

    Der vorhandene vollqualifizierte Name eines Felds.

  • to_field_identifier

    Der neue Feldbezeichner. Der Bezeichner muss innerhalb der lokalen Struktur eindeutig sein.

Beispiele

Siehe ALTER TABLE-Beispiele.