Delen via


ALTER TABLE COLUMN-component

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan 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

  • column_identifier

    De naam van de kolom die moet worden toegevoegd. De naam moet uniek zijn in de tabel.

    FIRST Tenzij of AFTER name worden opgegeven, wordt de kolom of het veld aan het einde toegevoegd.

  • field_name

    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:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 11.3 LTS en hoger

    Definieert een DEFAULT waarde voor de kolom waarop wordt gebruikt INSERT en MERGE ... INSERT wanneer de kolom niet is opgegeven. Alle STRING literals en STRING-functies in de standaarduitdrukking gebruiken UTF8_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:

    default_expressionmag geen subquery bevatten.

    DEFAULTwordt ondersteund voor CSV, JSONen PARQUETORC bronnen.

  • data_type

    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_name

    Voor data_typeSTRING geeft u desgewenst de sortering op die moet worden gebruikt met de kolom of het veld. Als de UTF8_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 id

    Als u de kolom of het veld opgeeft, wordt direct na het veld of de kolom identifiertoegevoegd.

  • MASK-component

    Van toepassing op:vinkje als ja aanAlleen Databricks SQL vinkje als ja aan Databricks Runtime 12.2 LTS en hoger vinkje als ja aan 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:vinkje als ja aan Databricks SQL vinkje als ja aan 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

  • column_identifier

    De naam van de kolom die moet worden gewijzigd.

  • field_name

    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 een STRING letterlijke naam zijn.

  • FIRST of AFTERid

    Hiermee verplaatst u de kolom van de huidige positie naar de voorzijde (FIRST) of onmiddellijk AFTER de identifier. Deze component wordt alleen ondersteund als table_name dit een Delta-tabel is.

  • TYPE data_type

    Van toepassing op: vinkje als ja aan Databricks SQL vinkje als ja aan 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 van VARCHAR(5) naar VARCHAR(10)
    • Het type van een CHAR kolom wijzigen in een VARCHAR, bijvoorbeeld van CHAR(5) in VARCHAR(5)
    • Het type van een CHAR of VARCHAR kolom wijzigen in STRING, bijvoorbeeld van VARCHAR(10) naar STRING.

    De volgende typewijzigingen worden ondersteund voor Delta-tabellen die delta.enableTypeWidening zijn ingesteld op true:

    Belangrijk

    Deze functie bevindt zich in openbare preview in Databricks Runtime 15.2 en hoger.

    Brontype Ondersteunde bredere typen
    BYTE SHORT INT, BIGINT, DECIMALDOUBLE
    SHORT INT, , , BIGINTDECIMALDOUBLE
    INT BIGINT, , DECIMALDOUBLE
    BIGINT DECIMAL, DOUBLE
    FLOAT DOUBLE
    DECIMAL DECIMAL met meer precisie en schaal
    DATE TIMESTAMP_NTZ

    Zie Type widening voor meer gedetailleerde informatie over type widening.

  • SET NOT NULL of DROP NOT NULL

    Hiermee wijzigt u het domein van geldige kolomwaarden om null-waarden SET NOT NULLuit te sluiten of null-waarden DROP 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 IDENTITY

    Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan 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) * stepwaarbij n de kleinste waarde is die voldoet start + n * step >= max() aan (voor een positieve stap).

    Deze optie wordt alleen ondersteund voor identiteitskolommen in Delta Lake-tabellen.

  • DROP DEFAULT

    Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan 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 met NOT NULL u zijn gedefinieerd, moet u een waarde opgeven voor elke toekomstige INSERT bewerking

  • SET DEFAULT default_expression

    Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 11.3 LTS en hoger

    Definieert een DEFAULT waarde voor de kolom waarop wordt gebruikt INSERT en MERGE ... 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:

    default_expressionmag geen subquery bevatten.

    DEFAULTwordt ondersteund voor CSV, JSONen ORCPARQUET 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 of current_timestamp de waarde eenmaal wordt berekend wanneer de ALTER 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-component

    Van toepassing op:vinkje als ja aanAlleen Databricks SQL vinkje als ja aan Databricks Runtime 12.2 LTS en hoger vinkje als ja aan 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:vinkje als ja aan 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:vinkje als ja aan Databricks SQL vinkje als ja aan 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 De tag_name naam moet uniek zijn binnen de tabel of kolom.

    • tag_value

      Een letterlijke .STRING

  • UNSET TAGS ( tag_name [, ...] )

    Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan 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 De tag_name naam moet uniek zijn binnen de tabel of kolom.

DROP COLUMN-component

Belangrijk

Deze functie is beschikbaar als openbare preview.

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan 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.

  • column_identifier

    De naam van de bestaande kolom.

  • field_name

    De volledig gekwalificeerde naam van een bestaand veld.

COLUMN-component HERNOEMEN

Belangrijk

Deze functie is beschikbaar als openbare preview.

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan 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

Voorbeelden

Zie ALTER TABLE-voorbeelden.