Dela via


ALTER TABLE ... COLUMN-sats

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime

Lägger till, ändrar eller släpper column i table eller ett fält i column i ett Delta Lake-table.

Behörigheter som krävs

Om du använder Unity Catalog måste du ha MODIFY behörighet att:

  • ÄNDRA COLUMN
  • LÄGG TILL COLUMN
  • SLÄPP COLUMN

Alla andra åtgärder kräver ägarskap för table.

Syntax

ALTER TABLE table_name
   { ADD COLUMN clause |
     ALTER COLUMN clause |
     DROP COLUMN clause |
     RENAME COLUMN clause }

ADD COLUMN klausul

Den här satsen stöds inte för JDBC datakällor.

Lägger till en eller flera columns till table, eller fält till befintliga columns i en Delta Lake table.

Kommentar

När du lägger till en column i en befintlig Delta-tablekan du inte definiera ett DEFAULT värde. Alla columns som läggs till i Delta tables behandlas som NULL för befintliga rader. När du har lagt till en columnkan du definiera ett standardvärde för column, men detta tillämpas bara för nya rader som infogas i table. Använd följande syntax:

ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_expression

Syntax

{ ADD [ COLUMN | COLUMNS ]
  ( { { column_identifier | field_name } data_type
      [ COLLATE collation_name ]
      [ DEFAULT clause ]
      [ COMMENT comment ]
      [ FIRST | AFTER identifier ]
      [ MASK clause ] } [, ...] ) }

Parameters

  • column_identifier

    Namnet på column som ska läggas till. Namnet måste vara unikt i table.

    Om inte FIRST eller AFTER name anges läggs column eller fältet till i slutet.

  • field_name

    Det fullständiga kvalificerade namnet på fältet som ska läggas till i en befintlig column. Alla komponenter i sökvägen till det kapslade fältet måste finnas och själva fältnamnet måste vara unikt.

  • DEFAULT default_expression

    Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 11.3 LTS och senare

    Definierar ett DEFAULT värde för column som används på INSERT och MERGE ... INSERT när column inte har angetts. Alla STRING literaler och STRING funktioner i standarduttrycket använder UTF8_BINARY sortering.

    Om inget standardvärde är angivet, antas DEFAULT NULL som standardvärde för nullable columns.

    default_expression kan bestå av literaler och inbyggda SQL-funktioner eller -operatorer förutom:

    default_expression får inte innehålla någon underfråga.

    DEFAULT stöds för CSV, JSON, PARQUEToch ORC källor.

  • data_type

    Anger datatypen för column eller fältet. Alla datatyper som stöds av Azure Databricks stöds inte av alla datakällor.

  • COLLATE collation_name

    För data_typeSTRING kan du ange sorteringen som ska användas med column eller fältet. Om det inte specificeras gäller UTF8_BINARY-kollationering.

  • COMMENT comment

    En valfri STRING literal som beskriver det tillagda column eller fältet.

    Om du vill lägga till en AI-genererad kommentar till ett table- eller table-column som hanteras av Unity Catalog, läs Lägga till AI-genererade kommentarer till Unity Catalog-objekt.

  • FIRST

    Om det anges läggs column till som den första column i table, eller så läggs fältet till som det första fältet i i den innehållande structen.

  • AFTER identifier

    Om det anges läggs column eller fältet till omedelbart efter fältet eller columnidentifier.

  • MASK-sats

    gäller för:markerat med ja Databricks SQL markerat med ja Databricks Runtime 12.2 LTS och senare markerat med ja Unity Catalog

    Viktigt!

    Den här funktionen finns som allmänt tillgänglig förhandsversion.

    Lägger till en column maskfunktion för att anonymisera känsliga data. Alla efterföljande frågor från den column får resultatet av utvärderingen av funktionen över column i stället för columnursprungliga värde. Detta kan vara användbart i detaljerade åtkomstkontrollsyften where funktionen kan kontrollera identitets- eller gruppmedlemskapen för den anropande användaren för att avgöra om värdet ska redigeras.

ALTER COLUMN-sats

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime

Ändrar en egenskap eller platsen hos en column.

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 } }

Parameters

  • column_identifier

    Namnet på column ändras.

  • field_name

    Det fullständigt kvalificerade namnet på fältet som ska ändras. Alla komponenter i sökvägen till det kapslade fältet måste finnas.

  • COMMENT comment

    Ändrar beskrivningen av column_namecolumn. comment måste vara en STRING literal.

  • FIRST eller AFTER identifier

    Flyttar column från dess aktuella position till framsidan (FIRST) eller omedelbart AFTERidentifier. Den här satsen stöds bara om table_name är en Delta-table.

  • TYPE data_type

    Gäller för: markerad ja Databricks SQL markerad ja Databricks Runtime 15.2 och senare

    Ändrar datatypen för column_namecolumn.

    Den här satsen stöds bara om table_name är en Delta-table.

    Följande typändringar stöds för alla Delta tables:

    • Öka storleken på en VARCHARcolumn, till exempel från VARCHAR(5) till VARCHAR(10)
    • Ändra typen av en CHARcolumn till en VARCHAR, till exempel från CHAR(5) till VARCHAR(5)
    • Ändra typen av CHAR eller VARCHARcolumn till STRING, till exempel från VARCHAR(10) till STRING.

    Följande typändringar stöds för Delta tables med delta.enableTypeWideningset till true:

    Viktigt!

    Den här funktionen finns i offentlig förhandsversion i Databricks Runtime 15.2 och senare.

    Source type Bredare typer som stöds
    BYTE SHORT, INT, BIGINT, , , DECIMALDOUBLE
    SHORT INT, BIGINT, , DECIMALDOUBLE
    INT BIGINT, , DECIMALDOUBLE
    BIGINT DECIMAL, DOUBLE
    FLOAT DOUBLE
    DECIMAL DECIMAL med större precision och skalning
    DATE TIMESTAMP_NTZ

    Mer detaljerad information om typbreddning finns i Typbreddning.

  • SET NOT NULL eller DROP NOT NULL

    Ändrar domänen för giltiga columnvalues för att undanta null-värden SET NOT NULL, eller inkludera null-värden DROP NOT NULL. Det här alternativet stöds endast för Delta Lake tables. Delta Lake säkerställer att constraint är giltigt för alla befintliga och nya data.

  • SYNC IDENTITY

    Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 10.4 LTS och senare

    Synkronisera metadata för en identitet column med faktiska data. När du skriver egna values till en identitet columnkanske den inte överensstämmer med metadata. Det här alternativet utvärderar tillståndet och uppdaterar metadata så att de överensstämmer med faktiska data. Efter det här kommandot börjar nästa automatiskt tilldelade identitetsvärde från start + (n + 1) * step, wheren är det minsta värdet som uppfyller start + n * step >= max() (för ett positivt steg).

    Det här alternativet stöds endast för identitet columns på Delta Lake tables.

  • DROP DEFAULT

    Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 11.3 LTS och senare

    Tar bort standarduttrycket från column. För null-columns motsvarar detta SET DEFAULT NULL. För columns som definierats med NOT NULL måste du ange ett värde för varje framtida INSERT åtgärd

  • SET DEFAULT default_expression

    Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 11.3 LTS och senare

    Definierar ett DEFAULT värde för column som används på INSERT och MERGE ... INSERT när column inte har angetts.

    Om ingen standard anges DEFAULT NULL är underförstådd för null-columns.

    default_expression kan bestå av literaler, inbyggda SQL-funktioner eller operatorer förutom:

    default_expression får inte innehålla en underfråga.

    DEFAULT stöds för CSV, JSON, ORCoch PARQUET källor.

    När du definierar standardvärdet för en nyligen tillagda columngäller standardvärdet för alla befintliga rader. Om standardvärdet innehåller en icke-deterministisk funktion, till exempel rand eller current_timestamp om värdet beräknas en gång när ALTER TABLE den körs, och tillämpas som en konstant på befintliga rader. För nyligen infogade rader körs standarduttrycket en gång per rad.

    När du set ett standardvärde med ALTER COLUMNpåverkas inte befintliga rader av den ändringen.

  • SET MASK-sats

    gäller för:markerat med ja Databricks SQL markerat med ja Databricks Runtime 12.2 LTS och senare markerat med ja Unity Catalog

    Viktigt!

    Den här funktionen finns som allmänt tillgänglig förhandsversion.

    Lägger till en column maskfunktion för att anonymisera känsliga data. Alla efterföljande förfrågningar från den column kommer att få resultatet av när funktionen utvärderas över column i stället för column:s ursprungliga värde. Detta kan vara användbart i detaljerade åtkomstkontrollsyften where funktionen kan kontrollera identitets- eller gruppmedlemskapen för den anropande användaren för att avgöra om värdet ska redigeras.

  • DROP MASK

    gäller för:markerad med ja enbart Unity-Catalog

    Viktigt!

    Den här funktionen finns som allmänt tillgänglig förhandsversion.

    Tar bort column-masken för den här column, om någon. Framtida frågor från den här column får columnursprungliga values.

  • SET TAGS ( { tag_name = tag_value } [, ...] )

    Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 13.3 LTS och senare

    Tillämpa taggar på column. Du måste ha APPLY TAG behörighet att lägga till taggar i column.

    • tag_name

      En literal STRING. tag_name måste vara unikt i table eller column.

    • tag_value

      En literal STRING.

  • UNSET TAGS ( tag_name [, ...] )

    Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 13.3 LTS och senare

    Remove taggar från column. Du måste ha APPLY TAG behörighet för att remove taggar från column.

    • tag_name

      En literal STRING. tag_name måste vara unikt i table eller column.

DROP COLUMN-klausul

Viktigt!

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 11.3 LTS och senare

Släpp ett eller flera columns eller fält i en Delta Lake-table.

När du släpper en column eller ett fält måste du släppa beroende kontrollbegränsningar och generera columns.

För krav, se Byt namn och ta bort columns med Delta Lake column mappning.

Syntax

DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )

Parameters

  • IF EXISTS

    När du anger IF EXISTSignorerar Azure Databricks ett försök att släppa columns som inte finns. Annars kan det leda till ett fel att ta bort columns som inte finns.

  • column_identifier

    Namnet på den befintliga column.

  • field_name

    Det fullständigt kvalificerade namnet på ett befintligt fält.

RENAME COLUMN-sats

Viktigt!

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 10.4 LTS och senare

Byter namn på ett column eller fält i en Delta Lake table som är aktiverad för column-mappning.

När du byter namn på en column eller ett fält måste du också ändra kontrollvillkor som är beroende och generera columns. Alla primära nycklar och främmande nycklar med hjälp av column kommer att tas bort. Om det gäller främmande nycklar måste du äga den table där den främmande nyckeln är definierad.

För krav och hur du aktiverar column-mappning, se Ändra namn och ta bort columns med Delta Lake column-mappning.

Syntax

RENAME COLUMN { column_identifier TO to_column_identifier|
                field_name TO to_field_identifier }

Parameters

Exempel

Se ALTER TABLE exempel.