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 en kolumn i en tabell eller ett fält i en kolumn i en Delta Lake-tabell.

Behörigheter som krävs

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

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

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

Syntax

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

LÄGG TILL KOLUMN-sats

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

Lägger till en eller flera kolumner i tabellen eller fält till befintliga kolumner i en Delta Lake-tabell.

Kommentar

När du lägger till en kolumn i en befintlig Delta-tabell kan du inte definiera ett DEFAULT värde. Alla kolumner som läggs till i Delta-tabeller behandlas som NULL för befintliga rader. När du har lagt till en kolumn kan du definiera ett standardvärde för kolumnen, men detta tillämpas bara för nya rader som infogas i tabellen. 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
      [ DEFAULT clause ] [ COMMENT comment ] [ FIRST | AFTER identifier ]
      [ MASK clause ] } [, ...] ) }

Parametrar

  • column_identifier

    Namnet på kolumnen som ska läggas till. Namnet måste vara unikt i tabellen.

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

  • field_name

    Det fullständigt kvalificerade namnet på det fält som ska läggas till i en befintlig kolumn. 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 kolumnen som används på INSERT och MERGE ... INSERT när kolumnen inte har angetts.

    Om inget standardvärde anges DEFAULT NULL är det underförstått för nullbara kolumner.

    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 kolumnen eller fältet. Alla datatyper som stöds av Azure Databricks stöds inte av alla datakällor.

  • COMMENT comment

    En valfri STRING literal som beskriver den tillagda kolumnen eller fältet.

    Om du vill lägga till en AI-genererad kommentar för en tabell eller tabellkolumn som hanteras av Unity Catalog kan du läsa Lägga till AI-genererade kommentarer till Unity Catalog-objekt.

  • FIRST

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

  • AFTERidentifierare

    Om det anges läggs kolumnen eller fältet till direkt efter fältet eller kolumnen identifier.

  • MASK-sats

    Gäller endast för: markerad ja Databricks SQL markerad ja Databricks Runtime 12.2 LTS och senare markerad ja i Unity Catalog

    Viktigt!

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

    Lägger till en kolumnmaskfunktion för att anonymisera känsliga data. Alla efterföljande frågor från den kolumnen får resultatet av utvärderingen av funktionen över kolumnen i stället för kolumnens ursprungliga värde. Detta kan vara användbart för detaljerad åtkomstkontroll där 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 för en kolumn.

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

Parametrar

  • column_identifier

    Namnet på kolumnen som ska ä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_name kolumnen. comment måste vara en STRING literal.

  • FIRST eller AFTERidentifierare

    Flyttar kolumnen från dess aktuella position till framsidan (FIRST) eller omedelbart AFTER identifier. Den här satsen stöds endast om table_name är en Delta-tabell.

  • TYPEdata_type

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

    Ändrar datatypen för column_name kolumnen.

    Den här satsen stöds endast om table_name är en Delta-tabell.

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

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

    Följande typändringar stöds för Delta-tabeller med delta.enableTypeWidening värdet 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 kolumnvärden för att exkludera nullvärden SET NOT NULLeller inkludera nullvärden DROP NOT NULL. Det här alternativet stöds endast för Delta Lake-tabeller. Delta Lake ser till att villkoret ä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 identitetskolumn med faktiska data. När du skriver dina egna värden till en identitetskolumn kanske 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, där n är det minsta värdet som uppfylls start + n * step >= max() (för ett positivt steg).

    Det här alternativet stöds endast för identitetskolumner i Delta Lake-tabeller.

  • DROP DEFAULT

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

    Tar bort standarduttrycket från kolumnen. För null-kolumner motsvarar SET DEFAULT NULLdetta . För kolumner 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 kolumnen som används på INSERT och MERGE ... INSERT när kolumnen inte har angetts.

    Om inget standardvärde anges DEFAULT NULL är underförstått för nullbara kolumner.

    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 kolumn gä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 anger en standardinställning med , ALTER COLUMNpåverkas inte befintliga rader av den ändringen.

  • SETMASK-sats

    Gäller endast för: markerad ja Databricks SQL markerad ja Databricks Runtime 12.2 LTS och senare markerad ja i Unity Catalog

    Viktigt!

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

    Lägger till en kolumnmaskfunktion för att anonymisera känsliga data. Alla efterföljande frågor från den kolumnen får resultatet av utvärderingen av funktionen över kolumnen i stället för kolumnens ursprungliga värde. Detta kan vara användbart för detaljerad åtkomstkontroll där 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 endast för: markerad ja Unity Catalog

    Viktigt!

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

    Tar bort kolumnmasken för den här kolumnen, om någon. Framtida frågor från den här kolumnen tar emot kolumnens ursprungliga värden.

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

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

    Använd taggar i kolumnen. Du måste ha APPLY TAG behörighet att lägga till taggar i kolumnen.

    • tag_name

      En literal STRING. Måste tag_name vara unikt i tabellen eller kolumnen.

    • 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

    Ta bort taggar från kolumnen. Du måste ha APPLY TAG behörighet att ta bort taggar från kolumnen.

    • tag_name

      En literal STRING. Måste tag_name vara unikt i tabellen eller kolumnen.

DROP 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 11.3 LTS och senare

Släpp en eller flera kolumner eller fält i en Delta Lake-tabell.

När du släpper en kolumn eller ett fält måste du släppa beroende kontrollbegränsningar och genererade kolumner.

Krav finns i Byt namn på och släpp kolumner med Delta Lake-kolumnmappning.

Syntax

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

Parametrar

  • IF EXISTS

    När du anger IF EXISTSignorerar Azure Databricks ett försök att släppa kolumner som inte finns. Annars kan det orsaka ett fel att ta bort icke-befintliga kolumner.

  • column_identifier

    Namnet på den befintliga kolumnen.

  • field_name

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

BYT NAMN PÅ KOLUMN-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 11.3 LTS och senare

Byter namn på en kolumn eller ett fält i en Delta Lake-tabell.

När du byter namn på en kolumn eller ett fält måste du också ändra beroende kontrollbegränsningar och genererade kolumner. Alla primära nycklar och sekundärnycklar som använder kolumnen kommer att tas bort. Om det gäller sekundärnycklar måste du äga tabellen där sekundärnyckeln har definierats.

Krav finns i Byt namn på och släpp kolumner med Delta Lake-kolumnmappning.

Syntax

RENAME COLUMN { column_identifier TO to_column_identifier|
                field_name TO to_field_identifier }

Parametrar

  • column_identifier

    Det befintliga namnet på kolumnen.

  • to_column_identifier

    Den nya kolumnidentifieraren. Identifieraren måste vara unik i tabellen.

  • field_name

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

  • to_field_identifier

    Den nya fältidentifieraren. Identifieraren måste vara unik i den lokala structen.

Exempel

Se ALTER TABLE-exempel.