Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks SQL
Databricks Runtime
Hiermee wordt een kolom in een tabel of gerealiseerde weergave of een veld in een kolom in een Delta Lake-tabel toegevoegd, gewijzigd of verwijderd.
Vereiste machtigingen
Als u Unity Catalog gebruikt, moet u gemachtigd zijn MODIFY voor het volgende:
ALTER COLUMNADD COLUMNDROP 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 }
VOEG COLUMN clausule TOE
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 ] } [, ...] ) }
Parameterwaarden
-
De naam van de kolom die moet worden toegevoegd. De naam moet uniek zijn in de tabel.
Tenzij
FIRSTofAFTER nameworden 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.
Gebruik de volgende speciale namen om velden toe te voegen aan structs die zijn genest in
ARRAYofMAPtypen:-
ELEMENTom naar eenARRAYelement te navigeren. -
KEYom naar eenMAPsleutel te navigeren. -
VALUEom naar eenMAPwaarde te navigeren.
Bijvoorbeeld:
phonenumbers.element.countrycodevoegt het veldcountrycodetoe aan elk element van dephonenumbersmatrix. -
DEFAULT default_expressionVan toepassing op:
Databricks SQL
Databricks Runtime 11.3 LTS en hogerDefinieert een
DEFAULTwaarde voor de kolom die wordt gebruikt voorINSERTenMERGE ... INSERTwanneer de kolom niet is opgegeven. AlleSTRINGliterals enSTRING-functies in de standaarduitdrukking gebruikenUTF8_BINARYcollatie.Als er geen standaardwaarde is opgegeven, wordt
DEFAULT NULLgeïmpliceerd voor nulbare kolommen.default_expressionkan bestaan uit letterlijke waarden en ingebouwde SQL-functies of -operators, met uitzondering van:- Statistische functies
- Analytische vensterfuncties
- Rangschikkingsvensterfuncties
- Generatorfuncties met tabelwaarden
default_expressionmag geen subquery bevatten.DEFAULTwordt ondersteund voorCSV,JSONenPARQUETORCbronnen.-
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.
COLLATEcollatie_naamVoor
data_typeSTRINGgeeft u desgewenst de sortering op die moet worden gebruikt met de kolom of het veld. Als deUTF8_BINARYsortering niet is opgegeven, is dit van toepassing.COMMENT commentEen optionele letterlijke
STRINGbeschrijving 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.
FIRSTAls 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.
AFTERIdAls de kolom of het veld wordt opgegeven, wordt deze direct na veld of kolom
identifiertoegevoegd.-
Van toepassing op:
Databricks SQL
Databricks Runtime 12.2 LTS en hoger
en alleen Unity CatalogBelangrijk
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-clausule COLUMN
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 }
[, ... ]
Vóór Databricks Runtime 16.3 biedt de component geen ondersteuning voor het wijzigen van meerdere kolommen in één component.
{ ALTER | CHANGE } [ COLUMN ]
{ column_identifier | field_name }
{ SET { MASK clause } |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause }
Parameterwaarden
-
De naam van de kolom die gewijzigd moet worden.
Als er meer dan eens naar een kolomidentificatie wordt verwezen, genereert Azure Databricks de fout NOT_SUPPORTED_CHANGE_SAME_COLUMN.
-
De volledig gekwalificeerde naam van het veld dat moet worden gewijzigd. Alle elementen van het pad naar het geneste veld moeten aanwezig zijn.
Als een veldnaam meer dan eens wordt gerefereerd, geeft Azure Databricks de foutmelding NOT_SUPPORTED_CHANGE_SAME_COLUMN.
COMMENT commentHiermee wijzigt u de beschrijving van de
column_namekolom.commentmoet eenSTRINGliteral zijn.FIRSTofAFTERidHiermee verplaatst u de kolom van de huidige positie naar de voorzijde (
FIRST) of onmiddellijkAFTERdeidentifier. Deze clausule wordt alleen ondersteund alstable_nameeen Delta-tabel is.TYPEdatatypeVan toepassing op:
Databricks SQL
Databricks Runtime 15.2 en hogerHiermee wijzigt u het gegevenstype van de
column_namekolom.Deze clausule wordt alleen ondersteund als
table_nameeen Delta-tabel is.De volgende typewijzigingen worden ondersteund voor alle Delta-tabellen:
- De grootte van een
VARCHARkolom vergroten, bijvoorbeeld vanVARCHAR(5)naarVARCHAR(10) - Het type van een
CHARkolom wijzigen in eenVARCHAR, bijvoorbeeld vanCHAR(5)inVARCHAR(5) - Het type van een
CHARofVARCHARkolom wijzigen inSTRING, bijvoorbeeld vanVARCHAR(10)naarSTRING.
De volgende typewijzigingen worden ondersteund voor Delta-tabellen die
delta.enableTypeWideningzijn ingesteld optrue:Belangrijk
Deze functie bevindt zich in openbare preview in Databricks Runtime 15.2 en hoger.
Brontype Ondersteunde uitgebreidere typen BYTESHORTINT,BIGINT,DECIMALDOUBLESHORTINT,BIGINT,DECIMAL,DOUBLEINTBIGINT, ,DECIMALDOUBLEBIGINTDECIMAL,DOUBLEFLOATDOUBLEDECIMALDECIMALmet meer precisie en schaalDATETIMESTAMP_NTZVoor meer gedetailleerde informatie over type widening, zie Type widening.
- De grootte van een
SET NOT NULLofDROP NOT NULLHiermee wijzigt u het domein van geldige kolomwaarden om null-waarden
SET NOT NULLuit te sluiten of null-waardenDROP NOT NULLop 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 IDENTITYVan toepassing op:
Databricks SQL
Databricks Runtime 10.4 LTS en hogerSynchroniseer 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 begint de volgende automatisch toegewezen identiteitswaarde vanaf
start + (n + 1) * step, waarbijnde kleinste waarde is die voldoet aanstart + n * step >= max()(voor een positieve stap).Deze optie wordt alleen ondersteund voor identiteitskolommen in Delta Lake-tabellen.
DROP DEFAULTVan toepassing op:
Databricks SQL
Databricks Runtime 11.3 LTS en hogerHiermee verwijdert u de standaardexpressie uit de kolom. Voor null-kolommen is dit gelijk aan
SET DEFAULT NULL. Voor kolommen die metNOT NULLzijn gedefinieerd, moet u een waarde opgeven bij elke toekomstigeINSERToperatie.SET DEFAULT default_expressionVan toepassing op:
Databricks SQL
Databricks Runtime 11.3 LTS en hogerDefinieert een
DEFAULTwaarde voor de kolom die wordt gebruikt voorINSERTenMERGE ... INSERTwanneer de kolom niet is opgegeven.Als er geen standaardwaarde is opgegeven
DEFAULT NULL, wordt dit geïmpliceerd voor null-kolommen.default_expressionkan bestaan uit letterlijke waarden, ingebouwde SQL-functies of operators, met uitzondering van:- Statistische functies
- Analytische vensterfuncties
- Rangschikkingsvensterfuncties
- Generatorfuncties met tabelwaarden
default_expressionmag geen subquery bevatten.DEFAULTwordt ondersteund voorCSV,JSONenORCPARQUETbronnen.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
randofcurrent_timestampde waarde eenmaal wordt berekend wanneer deALTER TABLEwaarde 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.SETMASK-clausuleVan toepassing op:
Databricks SQL
Databricks Runtime 12.2 LTS en hoger
en alleen Unity CatalogBelangrijk
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 MASKVan toepassing op:
alleen op Unity CatalogBelangrijk
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 hogerTags toepassen op de kolom. U moet gemachtigd zijn
APPLY TAGom tags toe te voegen aan de kolom.tag_name
Een letterlijke
STRING. Detag_namenaam 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 hogerVerwijder tags uit de kolom. U moet gemachtigd zijn
APPLY TAGom tags uit de kolom te verwijderen.tag_name
Een letterlijke
STRING. Detag_namenaam moet uniek zijn binnen de tabel of kolom.
DROP-clause COLUMN
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 relatie.
Wanneer u een kolom of veld neerzet, moet u afhankelijke controlebeperkingen en gegenereerde kolommen verwijderen.
Zie Kolommen hernoemen en verwijderen met Delta Lake-kolomtoewijzing voor vereisten.
Syntaxis
DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )
Parameterwaarden
IF EXISTSWanneer 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.
RENAME COLUMN clausule
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 externe sleutels die de kolom bevatten, worden verwijderd. In het geval van refererende sleutels moet u de eigenaar zijn van de tabel waarop de refererende sleutel is gedefinieerd.
Voor vereisten en hoe u kolomtoewijzing kunt inschakelen, zie Naam en het laten vervallen van kolommen met Delta Lake-kolomtoewijzing.
Syntaxis
RENAME COLUMN { column_identifier TO to_column_identifier|
field_name TO to_field_identifier }
Parameterwaarden
-
De bestaande naam van de kolom.
-
De nieuwe kolomidentificatie. 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.