ALTER TABLE COLUMN-sats
Gäller för: Databricks SQL 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
-
Namnet på kolumnen som ska läggas till. Namnet måste vara unikt i tabellen.
Om inte
FIRST
ellerAFTER name
anges läggs kolumnen eller fältet till i slutet. -
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: Databricks SQL Databricks Runtime 11.3 LTS och senare
Definierar ett
DEFAULT
värde för kolumnen som används påINSERT
ochMERGE ... 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:- Mängdfunktioner
- Analysfönsterfunktioner
- Funktioner för rangordningsfönster
- Generatorfunktioner för tabellvärde
default_expression
får inte innehålla någon underfråga.DEFAULT
stöds förCSV
,JSON
,PARQUET
ochORC
källor.-
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.
AFTER
identifierareOm det anges läggs kolumnen eller fältet till direkt efter fältet eller kolumnen
identifier
.-
Gäller endast för: Databricks SQL Databricks Runtime 12.2 LTS och senare 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: Databricks SQL 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
-
Namnet på kolumnen som ska ändras.
-
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 enSTRING
literal.FIRST
ellerAFTER
identifierareFlyttar kolumnen från dess aktuella position till framsidan (
FIRST
) eller omedelbartAFTER
identifier
. Den här satsen stöds endast omtable_name
är en Delta-tabell.TYPE
data_typeGäller för: Databricks SQL 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ånVARCHAR(5)
tillVARCHAR(10)
- Ändra typen av en
CHAR
kolumn till enVARCHAR
, till exempel frånCHAR(5)
tillVARCHAR(5)
- Ändra typen av en
CHAR
kolumn tillVARCHAR
, tillSTRING
exempel frånVARCHAR(10)
tillSTRING
.
Följande typändringar stöds för Delta-tabeller med
delta.enableTypeWidening
värdettrue
: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
, , ,DECIMAL
DOUBLE
SHORT
INT
,BIGINT
, ,DECIMAL
DOUBLE
INT
BIGINT
, ,DECIMAL
DOUBLE
BIGINT
DECIMAL
,DOUBLE
FLOAT
DOUBLE
DECIMAL
DECIMAL
med större precision och skalningDATE
TIMESTAMP_NTZ
Mer detaljerad information om typbreddning finns i Typbreddning.
- Öka storleken på en
SET NOT NULL
ellerDROP NOT NULL
Ändrar domänen för giltiga kolumnvärden för att exkludera nullvärden
SET NOT NULL
eller inkludera nullvärdenDROP 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: Databricks SQL 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ärn
är det minsta värdet som uppfyllsstart + 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: Databricks SQL Databricks Runtime 11.3 LTS och senare
Tar bort standarduttrycket från kolumnen. För null-kolumner motsvarar
SET DEFAULT NULL
detta . För kolumner som definierats medNOT NULL
måste du ange ett värde för varje framtidaINSERT
åtgärdSET DEFAULT default_expression
Gäller för: Databricks SQL Databricks Runtime 11.3 LTS och senare
Definierar ett
DEFAULT
värde för kolumnen som används påINSERT
ochMERGE ... 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:- Mängdfunktioner
- Analysfönsterfunktioner
- Funktioner för rangordningsfönster
- Generatorfunktioner för tabellvärde
default_expression
får inte innehålla en underfråga.DEFAULT
stöds förCSV
,JSON
,ORC
ochPARQUET
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
ellercurrent_timestamp
om värdet beräknas en gång närALTER 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 COLUMN
påverkas inte befintliga rader av den ändringen.SET
MASK-satsGäller endast för: Databricks SQL Databricks Runtime 12.2 LTS och senare 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: 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: Databricks SQL 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åstetag_name
vara unikt i tabellen eller kolumnen.tag_value
En literal
STRING
.
UNSET TAGS ( tag_name [, ...] )
Gäller för: Databricks SQL 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åstetag_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: Databricks SQL 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 EXISTS
ignorerar 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.-
Namnet på den befintliga kolumnen.
-
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: Databricks SQL 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
-
Det befintliga namnet på kolumnen.
-
Den nya kolumnidentifieraren. Identifieraren måste vara unik i tabellen.
-
Det befintliga fullständigt kvalificerade namnet på ett fält.
-
Den nya fältidentifieraren. Identifieraren måste vara unik i den lokala structen.