ALTER TABLE COLUMN-component
Van toepassing op: Databricks SQL Databricks Runtime
Voegt een kolom in een tabel of een veld in een kolom in een Delta Lake-tabel toe, wijzigt of verwijdert deze.
Vereiste machtigingen
Als u Unity Catalog gebruikt, moet u gemachtigd zijn MODIFY
voor het volgende:
- ALTER COLUMN
- KOLOM TOEVOEGEN
- DROP COLUMN
Voor alle andere bewerkingen is het eigendom van de tabel vereist.
Syntaxis
ALTER TABLE table_name
{ ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause }
COMPONENT ADD COLUMN
Deze component wordt niet ondersteund voor JDBC
gegevensbronnen.
Voegt een of meer kolommen toe aan de tabel of velden aan bestaande kolommen in een Delta Lake-tabel.
Notitie
Wanneer u een kolom aan een bestaande Delta-tabel toevoegt, kunt u geen DEFAULT
waarde definiëren. Alle kolommen die aan Delta-tabellen worden toegevoegd, worden behandeld als NULL
voor bestaande rijen. Nadat u een kolom hebt toegevoegd, kunt u desgewenst een standaardwaarde voor de kolom definiëren, maar dit wordt alleen toegepast op nieuwe rijen die in de tabel zijn ingevoegd. Gebruik de volgende syntaxis:
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_expression
Syntaxis
{ ADD [ COLUMN | COLUMNS ]
( { { column_identifier | field_name } data_type
[ COLLATE collation_name ]
[ DEFAULT clause ]
[ COMMENT comment ]
[ FIRST | AFTER identifier ]
[ MASK clause ] } [, ...] ) }
Parameters
-
De naam van de kolom die moet worden toegevoegd. De naam moet uniek zijn in de tabel.
FIRST
Tenzij ofAFTER name
worden opgegeven, wordt de kolom of het veld aan het einde toegevoegd. -
De volledig gekwalificeerde naam van het veld dat moet worden toegevoegd aan een bestaande kolom. Alle onderdelen van het pad naar het geneste veld moeten bestaan en de veldnaam zelf moet uniek zijn.
DEFAULT default_expression
Van toepassing op: Databricks SQL Databricks Runtime 11.3 LTS en hoger
Definieert een
DEFAULT
waarde voor de kolom waarop wordt gebruiktINSERT
enMERGE ... INSERT
wanneer de kolom niet is opgegeven. AlleSTRING
literals enSTRING
-functies in de standaarduitdrukking gebruikenUTF8_BINARY
collatie.Als er geen standaardwaarde is opgegeven,
DEFAULT NULL
wordt dit geïmpliceerd voor null-kolommen.default_expression
kan bestaan uit letterlijke waarden en ingebouwde SQL-functies of -operators, met uitzondering van:- Statistische functies
- Analytische vensterfuncties
- Classificatievensterfuncties
- Generatorfuncties met tabelwaarde
default_expression
mag geen subquery bevatten.DEFAULT
wordt ondersteund voorCSV
,JSON
enPARQUET
ORC
bronnen.-
Hiermee geeft u het gegevenstype van de kolom of het veld op. Niet alle gegevenstypen die worden ondersteund door Azure Databricks, worden ondersteund door alle gegevensbronnen.
COLLATE
collation_nameVoor
data_type
STRING
geeft u desgewenst de sortering op die moet worden gebruikt met de kolom of het veld. Als deUTF8_BINARY
sortering niet is opgegeven, is dit van toepassing.COMMENT comment
Een optionele letterlijke
STRING
beschrijving van de toegevoegde kolom of het toegevoegde veld.Als u een door AI gegenereerde opmerking wilt toevoegen voor een tabel- of tabelkolom die wordt beheerd door Unity Catalog, raadpleegt u Door AI gegenereerde opmerkingen toevoegen aan Unity Catalog-objecten.
FIRST
Als u de kolom opgeeft, wordt de kolom toegevoegd als de eerste kolom van de tabel, of wordt het veld toegevoegd als het eerste veld in de struct die de kolom bevat.
AFTER
idAls u de kolom of het veld opgeeft, wordt direct na het veld of de kolom
identifier
toegevoegd.-
Van toepassing op:Alleen Databricks SQL Databricks Runtime 12.2 LTS en hoger dan Unity Catalog
Belangrijk
Deze functie is beschikbaar als openbare preview.
Voegt een kolommaskerfunctie toe om gevoelige gegevens anoniem te maken. Alle volgende query's van die kolom ontvangen het resultaat van het evalueren van die functie ten opzichte van de kolom in plaats van de oorspronkelijke waarde van de kolom. Dit kan handig zijn voor verfijnde toegangsbeheerdoeleinden, waarbij de functie de identiteit of groepslidmaatschappen van de aanroepende gebruiker kan inspecteren om te bepalen of de waarde moet worden bewerkt.
ALTER COLUMN-component
Van toepassing op: Databricks SQL Databricks Runtime
Hiermee wijzigt u een eigenschap of de locatie van een kolom.
Syntaxis
{ { 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
-
De naam van de kolom die moet worden gewijzigd.
-
De volledig gekwalificeerde naam van het veld dat moet worden gewijzigd. Alle onderdelen van het pad naar het geneste veld moeten bestaan.
COMMENT comment
Hiermee wijzigt u de beschrijving van de
column_name
kolom.comment
moet eenSTRING
letterlijke naam zijn.FIRST
ofAFTER
idHiermee verplaatst u de kolom van de huidige positie naar de voorzijde (
FIRST
) of onmiddellijkAFTER
deidentifier
. Deze component wordt alleen ondersteund alstable_name
dit een Delta-tabel is.TYPE
data_typeVan toepassing op: Databricks SQL Databricks Runtime 15.2 en hoger
Hiermee wijzigt u het gegevenstype van de
column_name
kolom.Deze component wordt alleen ondersteund als
table_name
dit een Delta-tabel is.De volgende typewijzigingen worden ondersteund voor alle Delta-tabellen:
- De grootte van een
VARCHAR
kolom vergroten, bijvoorbeeld vanVARCHAR(5)
naarVARCHAR(10)
- Het type van een
CHAR
kolom wijzigen in eenVARCHAR
, bijvoorbeeld vanCHAR(5)
inVARCHAR(5)
- Het type van een
CHAR
ofVARCHAR
kolom wijzigen inSTRING
, bijvoorbeeld vanVARCHAR(10)
naarSTRING
.
De volgende typewijzigingen worden ondersteund voor Delta-tabellen die
delta.enableTypeWidening
zijn ingesteld optrue
:Belangrijk
Deze functie bevindt zich in openbare preview in Databricks Runtime 15.2 en hoger.
Brontype Ondersteunde bredere typen BYTE
SHORT
INT
,BIGINT
,DECIMAL
DOUBLE
SHORT
INT
, , ,BIGINT
DECIMAL
DOUBLE
INT
BIGINT
, ,DECIMAL
DOUBLE
BIGINT
DECIMAL
,DOUBLE
FLOAT
DOUBLE
DECIMAL
DECIMAL
met meer precisie en schaalDATE
TIMESTAMP_NTZ
Zie Type widening voor meer gedetailleerde informatie over type widening.
- De grootte van een
SET NOT NULL
ofDROP NOT NULL
Hiermee wijzigt u het domein van geldige kolomwaarden om null-waarden
SET NOT NULL
uit te sluiten of null-waardenDROP NOT NULL
op te nemen. Deze optie wordt alleen ondersteund voor Delta Lake-tabellen. Delta Lake zorgt ervoor dat de beperking geldig is voor alle bestaande en nieuwe gegevens.SYNC IDENTITY
Van toepassing op: Databricks SQL Databricks Runtime 10.4 LTS en hoger
Synchroniseer de metagegevens van een identiteitskolom met de werkelijke gegevens. Wanneer u uw eigen waarden naar een identiteitskolom schrijft, voldoet deze mogelijk niet aan de metagegevens. Met deze optie wordt de status geëvalueerd en worden de metagegevens bijgewerkt zodat deze consistent zijn met de werkelijke gegevens. Na deze opdracht wordt de volgende automatisch toegewezen identiteitswaarde gestart,
start + (n + 1) * step
waarbijn
de kleinste waarde is die voldoetstart + n * step >= max()
aan (voor een positieve stap).Deze optie wordt alleen ondersteund voor identiteitskolommen in Delta Lake-tabellen.
DROP DEFAULT
Van toepassing op: Databricks SQL Databricks Runtime 11.3 LTS en hoger
Hiermee verwijdert u de standaardexpressie uit de kolom. Voor null-kolommen is dit gelijk aan
SET DEFAULT NULL
. Voor kolommen die metNOT NULL
u zijn gedefinieerd, moet u een waarde opgeven voor elke toekomstigeINSERT
bewerkingSET DEFAULT default_expression
Van toepassing op: Databricks SQL Databricks Runtime 11.3 LTS en hoger
Definieert een
DEFAULT
waarde voor de kolom waarop wordt gebruiktINSERT
enMERGE ... INSERT
wanneer de kolom niet is opgegeven.Als er geen standaardwaarde is opgegeven
DEFAULT NULL
, wordt dit geïmpliceerd voor null-kolommen.default_expression
kan bestaan uit letterlijke waarden, ingebouwde SQL-functies of operators, met uitzondering van:- Statistische functies
- Analytische vensterfuncties
- Classificatievensterfuncties
- Generatorfuncties met tabelwaarde
default_expression
mag geen subquery bevatten.DEFAULT
wordt ondersteund voorCSV
,JSON
enORC
PARQUET
bronnen.Wanneer u de standaardwaarde definieert voor een nieuw toegevoegde kolom, is de standaardwaarde van toepassing op alle bestaande rijen. Als de standaardwaarde een niet-deterministische functie bevat, zoals
rand
ofcurrent_timestamp
de waarde eenmaal wordt berekend wanneer deALTER TABLE
waarde wordt uitgevoerd en wordt toegepast als een constante voor bestaande rijen. Voor nieuw ingevoegde rijen wordt de standaardexpressie eenmaal per rij uitgevoerd.Wanneer u een standaardinstelling instelt met behulp van
ALTER COLUMN
, worden bestaande rijen niet beïnvloed door die wijziging.SET
MASK-componentVan toepassing op:Alleen Databricks SQL Databricks Runtime 12.2 LTS en hoger dan Unity Catalog
Belangrijk
Deze functie is beschikbaar als openbare preview.
Voegt een kolommaskerfunctie toe om gevoelige gegevens anoniem te maken. Alle volgende query's van die kolom ontvangen het resultaat van het evalueren van die functie ten opzichte van de kolom in plaats van de oorspronkelijke waarde van de kolom. Dit kan handig zijn voor verfijnde toegangsbeheerdoeleinden, waarbij de functie de identiteit of groepslidmaatschappen van de aanroepende gebruiker kan inspecteren om te bepalen of de waarde moet worden bewerkt.
DROP MASK
Van toepassing op: alleen Unity Catalog
Belangrijk
Deze functie is beschikbaar als openbare preview.
Hiermee verwijdert u het kolommasker voor deze kolom, indien van toepassing. Toekomstige query's van deze kolom ontvangen de oorspronkelijke waarden van de kolom.
SET TAGS ( { tag_name = tag_value } [, ...] )
Van toepassing op: Databricks SQL Databricks Runtime 13.3 LTS en hoger
Tags toepassen op de kolom. U moet gemachtigd zijn
APPLY TAG
om tags toe te voegen aan de kolom.tag_name
Een letterlijke .
STRING
Detag_name
naam moet uniek zijn binnen de tabel of kolom.tag_value
Een letterlijke .
STRING
UNSET TAGS ( tag_name [, ...] )
Van toepassing op: Databricks SQL Databricks Runtime 13.3 LTS en hoger
Verwijder tags uit de kolom. U moet gemachtigd zijn
APPLY TAG
om tags uit de kolom te verwijderen.tag_name
Een letterlijke .
STRING
Detag_name
naam moet uniek zijn binnen de tabel of kolom.
DROP COLUMN-component
Belangrijk
Deze functie is beschikbaar als openbare preview.
Van toepassing op: Databricks SQL Databricks Runtime 11.3 LTS en hoger
Verwijder een of meer kolommen of velden in een Delta Lake-tabel.
Wanneer u een kolom of veld neerzet, moet u afhankelijke controlebeperkingen en gegenereerde kolommen verwijderen.
Zie Kolommen wijzigen en neerzetten met Delta Lake-kolomtoewijzing voor vereisten.
Syntaxis
DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )
Parameters
IF EXISTS
Wanneer u opgeeft
IF EXISTS
, negeert Azure Databricks een poging om kolommen te verwijderen die niet bestaan. Anders veroorzaakt het verwijderen van niet-bestaande kolommen een fout.-
De naam van de bestaande kolom.
-
De volledig gekwalificeerde naam van een bestaand veld.
COLUMN-component HERNOEMEN
Belangrijk
Deze functie is beschikbaar als openbare preview.
Van toepassing op: Databricks SQL Databricks Runtime 10.4 LTS en hoger
Wijzigt de naam van een kolom of veld in een Delta Lake-tabel die is ingeschakeld voor kolomtoewijzing.
Wanneer u de naam van een kolom of veld wijzigt, moet u ook afhankelijke controlebeperkingen en gegenereerde kolommen wijzigen. Alle primaire sleutels en refererende sleutels die de kolom gebruiken, worden verwijderd. In het geval van refererende sleutels moet u de eigenaar zijn van de tabel waarop de refererende sleutel is gedefinieerd.
Zie Naam van kolommen wijzigen en neerzetten met Delta Lake-kolomtoewijzing voor vereisten en het inschakelen van kolomtoewijzing.
Syntaxis
RENAME COLUMN { column_identifier TO to_column_identifier|
field_name TO to_field_identifier }
Parameters
-
De bestaande naam van de kolom.
-
De nieuwe kolom-id. De id moet uniek zijn binnen de tabel.
-
De bestaande volledig gekwalificeerde naam van een veld.
-
De nieuwe veld-id. De id moet uniek zijn binnen de lokale struct.