Sdílet prostřednictvím


ALTER TABLE Klauzule COLUMN

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime

Přidá, upraví nebo zahodí sloupec v tabulce nebo pole ve sloupci v tabulce Delta Lake.

Požadována oprávnění

Pokud používáte Katalog Unity, musíte mít MODIFY oprávnění k:

  • ALTER COLUMN
  • PŘIDAT SLOUPEC
  • DROP COLUMN

Všechny ostatní operace vyžadují vlastnictví tabulky.

Syntaxe

ALTER TABLE table_name
   { ADD COLUMN clause |
     ALTER COLUMN clause |
     DROP COLUMN clause |
     RENAME COLUMN clause }

Klauzule ADD COLUMN

Tato klauzule není podporována pro JDBC zdroje dat.

Přidá jeden nebo více sloupců do tabulky nebo pole do existujících sloupců v tabulce Delta Lake.

Poznámka:

Když přidáte sloupec do existující tabulky Delta, nemůžete definovat DEFAULT hodnotu. Všechny sloupce přidané do tabulek Delta se považují za NULL existující řádky. Po přidání sloupce můžete volitelně definovat výchozí hodnotu sloupce, ale použije se jenom pro nové řádky vložené do tabulky. Použijte následující syntax:

ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_expression

Syntaxe

{ ADD [ COLUMN | COLUMNS ]
  ( { { column_identifier | field_name } data_type
      [ COLLATE collation_name ]
      [ DEFAULT clause ]
      [ COMMENT comment ]
      [ FIRST | AFTER identifier ]
      [ MASK clause ] } [, ...] ) }

Parametry

  • column_identifier

    Název sloupce, který se má přidat. Název musí být v tabulce jedinečný.

    FIRST Není-li AFTER name zadán sloupec nebo pole, bude připojen na konci.

  • field_name

    Plně kvalifikovaný název pole, které se má přidat do existujícího sloupce. Musí existovat všechny součásti cesty k vnořenému poli a samotný název pole musí být jedinečný.

  • DEFAULT default_expression

    Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 11.3 LTS a vyšší

    DEFAULT Definuje hodnotu pro sloupec, který se používá, INSERT a MERGE ... INSERT pokud sloupec není zadaný. Všechny STRING literály a STRING funkce ve výchozím výrazu budou používat kolaci UTF8_BINARY.

    Pokud není zadána žádná výchozí hodnota, DEFAULT NULL je implicitní pro sloupce s možnou hodnotou null.

    default_expression mohou se skládat z literálů a integrovaných funkcí nebo operátorů SQL s výjimkou:

    default_expression nesmí obsahovat žádný poddotaz.

    DEFAULTpodporuje se pro CSV, JSONPARQUET, a ORC zdroje.

  • data_type

    Určuje datový typ sloupce nebo pole. Ne všechny datové typy podporované službou Azure Databricks jsou podporovány všemi zdroji dat.

  • COLLATE collation_name

    Pro data_typeSTRING volitelně určuje kolaci, která se má použít se sloupcem nebo polem. Není-li zadáno jinak, platí kolace UTF8_BINARY.

  • COMMENT comment

    Volitelný STRING literál popisující přidaný sloupec nebo pole.

    Pokud chcete přidat komentář vygenerovaný AI pro sloupec tabulky nebo tabulky spravované katalogem Unity, přečtěte si téma Přidání komentářů generovaných AI do objektů katalogu Unity.

  • FIRST

    Pokud zadáte sloupec, přidá se jako první sloupec tabulky nebo se pole přidá jako první pole v obsahující struktuře.

  • AFTER identifikátor

    Pokud zadáte sloupec nebo pole, bude přidán okamžitě za pole nebo sloupec identifier.

  • Klauzule MASK

    Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 12.2 LTS a vyšší zaškrtnutí označeného ano pouze katalog Unity

    Důležité

    Tato funkce je ve verzi Public Preview.

    Přidá funkci masky sloupce pro anonymizaci citlivých dat. Všechny následné dotazy z tohoto sloupce obdrží výsledek vyhodnocení této funkce místo původní hodnoty sloupce. To může být užitečné pro jemně odstupňované účely řízení přístupu, kdy funkce může zkontrolovat členství v identitě nebo skupině vyvolání uživatele a určit, jestli se má hodnota redakce provést.

Klauzule ALTER COLUMN

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime

Změní vlastnost nebo umístění sloupce.

Syntaxe

{ { 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 } }

Parametry

  • column_identifier

    Název sloupce, který se má změnit.

  • field_name

    Plně kvalifikovaný název pole, které se má změnit. Musí existovat všechny součásti cesty k vnořenému poli.

  • COMMENT comment

    Změní popis column_name sloupce. comment musí být STRING literál.

  • FIRST nebo AFTERidentifikátor

    Přesune sloupec z aktuální pozice na přední (FIRST) nebo okamžitou AFTERidentifier. Tato klauzule se podporuje pouze v případě, že table_name se jedná o tabulku Delta.

  • TYPE data_type

    Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 15.2 a vyšší

    Změní datový typ column_name sloupce.

    Tato klauzule se podporuje pouze v případě, že table_name se jedná o tabulku Delta.

    Všechny tabulky Delta podporují následující změny typu:

    • Zvětšení velikosti VARCHAR sloupce, například od VARCHAR(5) do VARCHAR(10)
    • Změna typu CHAR sloupce na sloupec VARCHAR, například z CHAR(5) na VARCHAR(5)
    • Změna typu CHAR sloupce na VARCHARSTRING, například z VARCHAR(10) do STRING.

    Následující změny typu jsou podporovány u tabulek Delta s nastavenými delta.enableTypeWidening na true:

    Důležité

    Tato funkce je ve verzi Public Preview v Databricks Runtime 15.2 a vyšší.

    Source type Podporované širší typy
    BYTE SHORT, INT, BIGINT, , DECIMALDOUBLE
    SHORT INT, BIGINT, , DECIMALDOUBLE
    INT BIGINT, , DECIMALDOUBLE
    BIGINT DECIMAL, DOUBLE
    FLOAT DOUBLE
    DECIMAL DECIMAL s větší přesností a škálováním
    DATE TIMESTAMP_NTZ

    Podrobnější informace o rozšíření typu naleznete v tématu Rozšíření typu.

  • SET NOT NULL nebo DROP NOT NULL

    Změní doménu platných hodnot sloupců tak, aby se vyloučily SET NOT NULLhodnoty null , nebo zahrnout hodnoty null DROP NOT NULL. Tato možnost je podporovaná jenom pro tabulky Delta Lake. Delta Lake zajistí platnost omezení pro všechna existující a nová data.

  • SYNC IDENTITY

    Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 10.4 LTS a vyšší

    Synchronizujte metadata sloupce identity se skutečnými daty. Když do sloupce identity napíšete vlastní hodnoty, nemusí být v souladu s metadaty. Tato možnost vyhodnotí stav a aktualizuje metadata tak, aby byla konzistentní se skutečnými daty. Po tomto příkazu začne další automaticky přiřazená hodnota identity od start + (n + 1) * step, kde n je nejmenší hodnota, která splňuje start + n * step >= max() (pro pozitivní krok).

    Tato možnost je podporovaná pouze pro sloupce identit v tabulkách Delta Lake.

  • DROP DEFAULT

    Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 11.3 LTS a vyšší

    Odebere výchozí výraz ze sloupce. Pro sloupce s možnou hodnotou null je to ekvivalentní SET DEFAULT NULL. U sloupců definovaných pomocí NOT NULL potřebujete zadat hodnotu pro každou budoucí INSERT operaci.

  • SET DEFAULT default_expression

    Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 11.3 LTS a vyšší

    DEFAULT Definuje hodnotu pro sloupec, který se používá, INSERT a MERGE ... INSERT pokud sloupec není zadaný.

    Pokud není zadána DEFAULT NULL žádná výchozí hodnota pro sloupce s možnou hodnotou null.

    default_expression mohou se skládat z literálů, integrovaných funkcí SQL nebo operátorů s výjimkou:

    default_expression nesmí obsahovat poddotaz.

    DEFAULTpodporuje se pro CSV, JSONORC, a PARQUET zdroje.

    Když definujete výchozí hodnotu pro nově přidaný sloupec, použije se výchozí hodnota pro všechny existující řádky. Pokud výchozí hodnota zahrnuje ne deterministické funkce, jako rand je nebo current_timestamp hodnota se vypočítá jednou při ALTER TABLE spuštění, a použije se jako konstanta pro před existující řádky. U nově vložených řádků se výchozí výraz spustí jednou za řádky.

    Pokud nastavíte výchozí hodnotu pomocí ALTER COLUMN, stávající řádky se touto změnou neovlivní.

  • SET Klauzule MASK

    Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 12.2 LTS a vyšší zaškrtnutí označeného ano pouze katalog Unity

    Důležité

    Tato funkce je ve verzi Public Preview.

    Přidá funkci masky sloupce pro anonymizaci citlivých dat. Všechny následné dotazy z tohoto sloupce obdrží výsledek vyhodnocení této funkce místo původní hodnoty sloupce. To může být užitečné pro jemně odstupňované účely řízení přístupu, kdy funkce může zkontrolovat členství v identitě nebo skupině vyvolání uživatele a určit, jestli se má hodnota redakce provést.

  • DROP MASK

    Platí pro:zaškrtnutí označeného ano Pouze katalog Unity

    Důležité

    Tato funkce je ve verzi Public Preview.

    Odebere masku sloupce pro tento sloupec( pokud existuje). Budoucí dotazy z tohoto sloupce obdrží původní hodnoty sloupce.

  • SET TAGS ( { tag_name = tag_value } [, ...] )

    Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 13.3 LTS a vyšší

    Použijte značky u sloupce. Ke přidávání značek do sloupce potřebujete APPLY TAG oprávnění.

    • tag_name

      Literál STRING. Musí tag_name být jedinečný v tabulce nebo sloupci.

    • tag_value

      Literál STRING.

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

    Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 13.3 LTS a vyšší

    Odeberte značky ze sloupce. Musíte mít APPLY TAG oprávnění k odebrání značek ze sloupce.

    • tag_name

      Literál STRING. Musí tag_name být jedinečný v tabulce nebo sloupci.

Klauzule DROP COLUMN

Důležité

Tato funkce je ve verzi Public Preview.

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 11.3 LTS a vyšší

Odstraňte jeden nebo více sloupců nebo polí v tabulce Delta Lake.

Když zahodíte sloupec nebo pole, musíte vypustit závislá omezení kontroly a vygenerované sloupce.

Požadavky najdete v tématu Přejmenování a vyřazení sloupců s mapováním sloupců Delta Lake.

Syntaxe

DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )

Parametry

  • IF EXISTS

    Když zadáte IF EXISTS, Azure Databricks ignoruje pokus o vyřazení sloupců, které neexistují. V opačném případě vyřazení neexistující sloupců způsobí chybu.

  • column_identifier

    Název existujícího sloupce

  • field_name

    Plně kvalifikovaný název existujícího pole.

Klauzule RENAME COLUMN

Důležité

Tato funkce je ve verzi Public Preview.

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 10.4 LTS a vyšší

Přejmenuje sloupec nebo pole v tabulce Delta Lake povolené pro mapování sloupců.

Při přejmenování sloupce nebo pole je také potřeba změnit závislá omezení kontroly a vygenerované sloupce. Všechny primární klíče a cizí klíče používající sloupec se zahodí. V případě cizích klíčů musíte vlastnit tabulku, na které je cizí klíč definován.

Požadavky a postup povolení mapování sloupců najdete v tématu Přejmenování a vyřazení sloupců s mapováním sloupců Delta Lake.

Syntaxe

RENAME COLUMN { column_identifier TO to_column_identifier|
                field_name TO to_field_identifier }

Parametry

Příklady

Viz příklady ALTER TABLE.