Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Databricks SQL
Databricks Runtime
Lägger till, ändrar eller släpper en kolumn i en tabell eller materialiserad vy, 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:
ALTER COLUMNADD COLUMNDROP COLUMN
Alla andra åtgärder kräver ägande av tabellen.
Syntax
ALTER TABLE table_name
{ ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause }
Lägg till COLUMN 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
[ COLLATE collation_name ]
[ 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
FIRSTellerAFTER nameanges 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.
Om du vill lägga till fält i till structs kapslade i
ARRAYellerMAPtyper använder du följande specialnamn:-
ELEMENTför att navigera till ettARRAYelement. -
KEYför att navigera till enMAPnyckel. -
VALUEför att navigera till ettMAPvärde.
Till exempel:
phonenumbers.element.countrycodelägger till fältetcountrycodei varje element i matrisenphonenumbers. -
DEFAULT default_expressionGäller för:
Databricks SQL
Databricks Runtime 11.3 LTS och senareDefinierar ett
DEFAULTvärde för kolumnen som används påINSERTochMERGE ... INSERTnär kolumnen inte har angetts. AllaSTRINGliteraler ochSTRINGfunktioner i standarduttrycket använderUTF8_BINARYsortering.Om inget standardvärde anges är
DEFAULT NULLunderförstått för nullbara kolumner.default_expressionkan bestå av literaler och inbyggda SQL-funktioner eller -operatorer förutom:- Mängdfunktioner
- analytiska fönsterfunktioner
- Funktioner för rangordningsfönster
- Generatorfunktioner som returnerar tabellvärden
default_expressionfår inte innehålla någon underfråga.DEFAULTstöds förCSV,JSON,PARQUETochORCkällor.-
Anger datatypen för kolumnen eller fältet. Alla datatyper som stöds av Azure Databricks stöds inte av alla datakällor.
COLLATEcollation_nameFör
data_typeSTRINGkan du välja att ange sortering som ska användas med kolumnen eller fältet. Om det inte specificeras gällerUTF8_BINARY-kollationering.COMMENT commentEn valfri
STRINGliteral 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.
FIRSTOm 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.
AFTERidentifierareOm det anges läggs kolumnen eller fältet till omedelbart efter fältet eller kolumnen
identifier.-
Gäller för:
Databricks SQL
Databricks Runtime 12.2 LTS och senare
Unity CatalogViktigt!
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-klausul COLUMN
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 }
[, ... ]
Före Databricks Runtime 16.3 stöder satsen inte ändring av flera kolumner i en enda sats.
{ ALTER | CHANGE } [ COLUMN ]
{ column_identifier | field_name }
{ SET { MASK clause } |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause }
Parametrar
-
Namnet på kolumnen som ska ändras.
Om en kolumnidentifierare refereras till mer än en gång genererar Azure Databricks NOT_SUPPORTED_CHANGE_SAME_COLUMN.
-
Det fullständiga kvalificerade namnet på fältet som ska ändras. Alla komponenter i sökvägen till det kapslade fältet måste finnas.
Om ett fältnamn refereras till mer än en gång genererar Azure Databricks NOT_SUPPORTED_CHANGE_SAME_COLUMN.
COMMENT commentÄndrar beskrivningen av kolumnen
column_name.commentmåste vara enSTRINGliteral.FIRSTellerAFTERidentifierareFlyttar kolumnen från dess aktuella position till framsidan (
FIRST) eller omedelbartAFTERidentifier. Den här satsen stöds endast omtable_nameär en Delta-tabell.TYPEdatatypGäller för:
Databricks SQL
Databricks Runtime 15.2 och senareÄndrar datatypen för kolumnen
column_name.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
VARCHARkolumn, till exempel frånVARCHAR(5)tillVARCHAR(10) - Ändra typen av en
CHARkolumn till enVARCHAR, till exempel frånCHAR(5)tillVARCHAR(5) - Ändra typen för en
CHAR- ellerVARCHAR-kolumn tillSTRING, till exempel frånVARCHAR(10)tillSTRING.
Följande typändringar stöds för Delta-tabeller med
delta.enableTypeWideninginställt påtrue:Viktigt!
Den här funktionen finns i offentlig förhandsversion i Databricks Runtime 15.2 och senare.
Källtyp Bredare typer som stöds BYTESHORT,INT,BIGINT, , ,DECIMALDOUBLESHORTINT,BIGINT, ,DECIMALDOUBLEINTBIGINT, ,DECIMALDOUBLEBIGINTDECIMAL,DOUBLEFLOATDOUBLEDECIMALDECIMALmed större precision och skalningDATETIMESTAMP_NTZMer detaljerad information om typbreddning finns i Typbreddning.
- Öka storleken på en
SET NOT NULLellerDROP NOT NULLÄndrar domänen för giltiga kolumnvärden för att exkludera nullvärden
SET NOT NULL, eller inkludera null-vä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 IDENTITYGäller för:
Databricks SQL
Databricks Runtime 10.4 LTS och senareSynkronisera 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 uppfyllerstart + n * step >= max()(för ett positivt steg).Det här alternativet stöds endast för identitetskolumner i Delta Lake-tabeller.
DROP DEFAULTGäller för:
Databricks SQL
Databricks Runtime 11.3 LTS och senareTar bort standarduttrycket från kolumnen. För null-kolumner motsvarar detta
SET DEFAULT NULL. För kolumner som definierats medNOT NULLmåste du ange ett värde för varje framtidaINSERTåtgärdSET DEFAULT default_expressionGäller för:
Databricks SQL
Databricks Runtime 11.3 LTS och senareDefinierar ett
DEFAULTvärde för kolumnen som används påINSERTochMERGE ... INSERTnär kolumnen inte har angetts.Om inget standardvärde anges
DEFAULT NULLär underförstått för nullbara kolumner.default_expressionkan bestå av literaler, inbyggda SQL-funktioner eller operatorer förutom:- Mängdfunktioner
- analytiska fönsterfunktioner
- Funktioner för rangordningsfönster
- Generatorfunktioner som returnerar tabellvärden
default_expressionfår inte innehålla en underfråga.DEFAULTstöds förCSV,JSON,ORCochPARQUETkä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
randellercurrent_timestamp, beräknas värdet en gång närALTER TABLEkörs, och det 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-klausulGäller för:
Databricks SQL
Databricks Runtime 12.2 LTS och senare
Unity CatalogViktigt!
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 MASKGäller för:
endast för Unity-katalogenViktigt!
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 senareAnvänd taggar i kolumnen. Du måste ha
APPLY TAGbehörighet att lägga till taggar i kolumnen.tag_name
En bokstavlig
STRING.tag_namemåste vara unik i tabellen eller kolumnen.tag_value
En bokstavlig
STRING.
UNSET TAGS ( tag_name [, ...] )Gäller för:
Databricks SQL
Databricks Runtime 13.3 LTS och senareTa bort taggar från kolumnen. Du måste ha
APPLY TAGbehörighet att ta bort taggar från kolumnen.tag_name
En bokstavlig
STRING.tag_namemåste vara unik i tabellen eller kolumnen.
DROP-klausul COLUMN
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 relation.
När du släpper en kolumn eller ett fält måste du släppa beroende kontrollbegränsningar och genererade kolumner.
För krav, se Byt namn på och släpp kolumner med Delta Lake-kolumnmappning.
Syntax
DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )
Parametrar
IF EXISTSNär du anger
IF EXISTSignorerar Azure Databricks ett försök att släppa kolumner som inte finns. Att ta bort icke-existerande kolumner orsakar annars ett fel.-
Namnet på den befintliga kolumnen.
-
Det fullständigt kvalificerade namnet på ett befintligt fält.
RENAME-sats COLUMN
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å en kolumn eller ett fält i en Delta Lake-tabell som är aktiverad för kolumnmappning.
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 främmande nycklar 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.
För krav och hur du aktiverar kolumnmappning, se Byt namn på och ta bort 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.