ALTER TABLE ... COLUMN-sats
Gäller för: Databricks SQL 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
-
Namnet på column som ska läggas till. Namnet måste vara unikt i table.
Om inte
FIRST
ellerAFTER name
anges läggs column eller fältet till i slutet. -
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: Databricks SQL Databricks Runtime 11.3 LTS och senare
Definierar ett
DEFAULT
värde för column som används påINSERT
ochMERGE ... INSERT
när column inte har angetts. AllaSTRING
literaler ochSTRING
funktioner i standarduttrycket använderUTF8_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:- Mängdfunktioner
- Analytiska funktioner window
- Rankning window funktioner
- Table värderade generatorfunktioner
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 column eller fältet. Alla datatyper som stöds av Azure Databricks stöds inte av alla datakällor.
COLLATE
collation_nameFör
data_type
STRING
kan du ange sorteringen som ska användas med column eller fältet. Om det inte specificeras gällerUTF8_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
identifierOm det anges läggs column eller fältet till omedelbart efter fältet eller column
identifier
.-
gäller för: Databricks SQL Databricks Runtime 12.2 LTS och senare 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: Databricks SQL 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
-
Namnet på column ä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
column.comment
måste vara enSTRING
literal.FIRST
ellerAFTER
identifierFlyttar column från dess aktuella position till framsidan (
FIRST
) eller omedelbartAFTER
identifier
. Den här satsen stöds bara omtable_name
är en Delta-table.TYPE
data_typeGäller för: Databricks SQL Databricks Runtime 15.2 och senare
Ändrar datatypen för
column_name
column.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
VARCHAR
column, till exempel frånVARCHAR(5)
tillVARCHAR(10)
- Ändra typen av en
CHAR
column till enVARCHAR
, till exempel frånCHAR(5)
tillVARCHAR(5)
- Ändra typen av
CHAR
ellerVARCHAR
column tillSTRING
, till exempel frånVARCHAR(10)
tillSTRING
.
Följande typändringar stöds för Delta tables med
delta.enableTypeWidening
set tilltrue
: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 columnvalues för att undanta null-värden
SET NOT NULL
, eller inkludera null-värdenDROP 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: Databricks SQL 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 uppfyllerstart + 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: Databricks SQL 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 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 column som används påINSERT
ochMERGE ... 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:- Mängdfunktioner
- Analytiska window funktioner
- Ranking window funktioner
- Table värdegivande generatorfunktioner
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 columngä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 set ett standardvärde med
ALTER COLUMN
påverkas inte befintliga rader av den ändringen.SET
MASK-satsgäller för: Databricks SQL Databricks Runtime 12.2 LTS och senare 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: 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: Databricks SQL 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: Databricks SQL 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: Databricks SQL 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 EXISTS
ignorerar 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.-
Namnet på den befintliga column.
-
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: Databricks SQL 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
-
Det befintliga namnet på column.
-
Den nya columnidentifier. identifier måste vara unik i table.
-
Det befintliga fullständigt kvalificerade namnet på ett fält.
-
Det nya fältet identifier. identifier måste vara unik i den lokala strukturen.