Megosztás a következőn keresztül:


ALTER TABLE ... COLUMN záradék

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime

Hozzáad, módosít, vagy elvet egy oszlopot egy táblában, vagy egy mezőt egy oszlopban a Delta Lake-táblában.

Szükséges engedélyek

Ha a Unity Katalógust használja, MODIFY engedéllyel kell rendelkeznie a következőhöz:

  • ALTER COLUMN
  • ADD COLUMN
  • DROP COLUMN

Minden más művelethez a tábla tulajdonjoga szükséges.

Szintaxis

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

Adj hozzá COLUMN záradékot

Ez a záradék a JDBC adatforrások esetében nem támogatott.

Egy vagy több oszlopot ad hozzá a táblához, vagy mezőket a Delta Lake-tábla meglévő oszlopaihoz.

Feljegyzés

Ha oszlopot ad hozzá egy meglévő Delta-táblához, nem definiálhat DEFAULT értéket. A Delta-táblákhoz hozzáadott összes oszlop NULL lesz kezelve a meglévő sorok esetében. Az oszlop hozzáadása után megadhat egy alapértelmezett értéket az oszlophoz, de ez csak a táblába beszúrt új sorokra vonatkozik. Alkalmazza a következő szintaxist:

ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_expression

Szintaxis

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

Paraméterek

  • column_identifier

    A hozzáadni kívánt oszlop neve. A névnek egyedinek kell lennie a táblában.

    Ha nincs megadva FIRST vagy AFTER name, a program hozzáfűzi az oszlopot vagy a mezőt a végéhez.

  • field_name

    A meglévő oszlophoz hozzáadni kívánt mező teljes neve. A beágyazott mező elérési útjának minden összetevőjének léteznie kell, és magának a mezőnévnek egyedinek kell lennie.

    Ha mezőket szeretne hozzáadni a beágyazott vagy ARRAY típusokba ágyazott MAP szerkezetekhez, használja a következő speciális neveket:

    • ELEMENT elemhez való navigáláshoz ARRAY .
    • KEY a kulcsra való navigáláshoz MAP .
    • VALUE az értékre való navigáláshoz MAP .

    Például: phonenumbers.element.countrycode hozzáadja a mezőt countrycode a phonenumbers tömb minden eleméhez.

  • DEFAULT default_expression

    A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 11.3 LTS és újabb

    Egy DEFAULT értéket határoz meg a INSERT és MERGE ... INSERT számára, amikor az oszlop nincs megadva. Az alapértelmezett kifejezésben szereplő STRING literálok és STRING függvények UTF8_BINARY rendezést fognak használni.

    Ha nincs megadva alapértelmezett érték, a DEFAULT NULL a null értékű oszlopokra utal.

    default_expression lehetnek literálok, és beépített SQL-függvények vagy operátorok, kivéve:

    default_expression nem tartalmazhat részlekérdezést.

    A DEFAULT, CSV, JSON, PARQUET és ORC források támogatottak.

  • adat_típus

    Az oszlop vagy mező adattípusát adja meg. Az Azure Databricks által támogatott adattípusokat nem minden adatforrás támogatja.

  • COLLATE összeállítás_név

    A data_typeSTRING opcionálisan megadja az oszlophoz vagy mezőhöz alkalmazandó rendezést. Ha nincs megadva, a UTF8_BINARY rendezés érvényes.

  • COMMENT comment

    Választható STRING-literál, amely a hozzáadott oszlopot vagy mezőt írja le.

    Ha AI által létrehozott megjegyzést szeretne hozzáadni egy, a Unity Catalog által felügyelt táblázathoz vagy táblázatoszlophoz, olvassa el AI által létrehozott megjegyzések hozzáadása Unity Catalog-objektumokhoz.

  • FIRST

    Ha meg van adva, az oszlop a tábla első oszlopaként lesz hozzáadva, vagy a mező lesz hozzáadva az azt tartalmazó szerkezet első mezőjeként.

  • AFTER azonosító

    Ha meg van adva, az oszlop vagy mező közvetlenül a mező vagy oszlop identifierután lesz hozzáadva.

  • MASZK záradék

    A következőkre vonatkozik:jelölve: igen Databricks SQL jelölve: igen Databricks Runtime 12.2 LTS és újabb csak a Unity Catalog esetében jelölve: igen

    Fontos

    Ez a funkció a nyilvános előzetes verzióban érhető el.

    Hozzáad egy oszlopmaszk-függvényt a bizalmas adatok anonimizálásához. Az oszlop minden további lekérdezése megkapja a függvény kiértékelésének eredményét az oszlopon az oszlop eredeti értéke helyett. Ez hasznos lehet részletes hozzáférés-vezérlési célokra, ahol a függvény megvizsgálhatja az invokáló felhasználó identitását vagy csoporttagságát annak megállapításához, hogy az értéket újra kívánja-e használni.

ALTER COLUMN záradék

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime

Módosít egy tulajdonságot vagy egy oszlop helyét.

Szintaxis

 { 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 }
  [, ... ]

A Databricks Runtime 16.3-at megelőzően a záradék nem támogatja egyetlen záradék több oszlopának módosítását.

{ ALTER | CHANGE } [ COLUMN ]
  { column_identifier | field_name }
  { SET { MASK clause } |
    DROP MASK |
    SET TAGS clause |
    UNSET TAGS clause }

Paraméterek

  • column_identifier

    A módosítani kívánt oszlop neve.

    Ha egy oszlopazonosítóra többször hivatkoznak, az Azure Databricks NOT_SUPPORTED_CHANGE_SAME_COLUMN jelez.

  • field_name

    A módosítani kívánt mező teljes neve. A beágyazott mező elérési útjának minden összetevőjének léteznie kell.

    Ha egy mezőnévre többször hivatkozik, az Azure Databricks NOT_SUPPORTED_CHANGE_SAME_COLUMN hibát ad.

  • COMMENT comment

    Módosítja a column_name oszlop leírását. comment-nak/-nek egy STRING literálnak kell lennie.

  • FIRST vagy AFTERazonosító

    Áthelyezi az oszlopot az aktuális helyzetéből az elejére (FIRST), vagy azonnal AFTER a identifier elé. Ez a záradék csak akkor támogatott, ha table_name Delta-tábla.

  • TYPE adattípus

    A következőkre vonatkozik: jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 15.2 vagy újabb

    A column_name oszlop adattípusának módosítása.

    Ez a záradék csak akkor támogatott, ha table_name Delta-tábla.

    Az összes Delta-tábla esetében a következő típusmódosítások támogatottak:

    • Egy VARCHAR oszlop méretének növelése, például VARCHAR(5)-ről VARCHAR(10)
    • CHAR oszlop típusának módosítása VARCHAR, például CHAR(5)-ról VARCHAR(5)
    • Egy CHAR vagy VARCHAR oszlop típusának módosítása STRING: például VARCHAR(10)-ről STRING.

    A Delta táblák az alábbi típusmódosításokat támogatják, amikor a delta.enableTypeWidening értéket átállítják trueértékre:

    Fontos

    Ez a funkció nyilvános előzetes verzióban érhető el a Databricks Runtime 15.2-ben és újabb verziójában.

    Forrás típusa Támogatott szélesebb típusok
    BYTE SHORT, INT, BIGINT, DECIMALDOUBLE
    SHORT INT, BIGINT, DECIMALDOUBLE
    INT \, \, \
    BIGINT DECIMAL, DOUBLE
    FLOAT DOUBLE
    DECIMAL DECIMAL nagyobb pontossággal és skálázással
    DATE TIMESTAMP_NTZ

    A típusszűkítésről további információt a Típusszűkítés című témakörben talál.

  • SET NOT NULL vagy DROP NOT NULL

    Módosítja az érvényes oszlopértékek tartományát, hogy kizárja a null értékeket SET NOT NULL, vagy a null értékeket is belefoglalja DROP NOT NULL. Ez a beállítás csak Delta Lake-táblák esetén támogatott. A Delta Lake biztosítja, hogy a korlátozás érvényes legyen az összes meglévő és új adatra.

  • SYNC IDENTITY

    A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 10.4 LTS és újabb

    Szinkronizálja egy identitásoszlop metaadatait a tényleges adatokkal. Ha saját értékeket ír egy identitásoszlopba, előfordulhat, hogy az nem felel meg a metaadatoknak. Ez a beállítás kiértékeli az állapotot, és frissíti a metaadatokat, hogy azok összhangban legyenek a tényleges adatokkal. A parancs után a következő automatikusan hozzárendelt identitásérték start + (n + 1) * stepkezdődik, ahol n a legkisebb érték, amely megfelel a start + n * step >= max() (pozitív lépés esetén).

    Ez a beállítás csak a Delta Lake-táblák identitásoszlopai esetében támogatott.

  • DROP DEFAULT

    A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 11.3 LTS és újabb

    Eltávolítja az alapértelmezett kifejezést az oszlopból. Null értékű oszlopok esetén ez egyenértékű a SET DEFAULT NULL. A NOT NULL definiált oszlopokhoz minden jövőbeli INSERT művelethez meg kell adnia egy értéket

  • SET DEFAULT default_expression

    A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 11.3 LTS és újabb

    Egy DEFAULT értéket határoz meg a INSERT és MERGE ... INSERT számára, amikor az oszlop nincs megadva.

    Ha nincs megadva alapértelmezett érték, DEFAULT NULL null értékű oszlopokra utal.

    default_expression lehetnek literálok, beépített SQL-függvények vagy operátorok, kivéve:

    default_expression nem tartalmazhat alkérdezést.

    A DEFAULT, CSV, JSON, ORC és PARQUET források támogatottak.

    Az újonnan hozzáadott oszlop alapértelmezett értékének megadásakor az alapértelmezett érték az összes meglévő sorra érvényes. Ha az alapértelmezett érték nem determinisztikus függvényt tartalmaz, például randcurrent_timestamp az értéket egyszer számítja ki a ALTER TABLE végrehajtáskor, és állandóként alkalmazza a már meglévő sorokra. Az újonnan beszúrt sorok esetében az alapértelmezett kifejezés soronként egyszer fut.

    Ha a ALTER COLUMNhasználatával állít be alapértelmezett értéket, a meglévő sorokat ez a módosítás nem érinti.

  • SET MASZK záradék

    A következőkre vonatkozik:jelölve: igen Databricks SQL jelölve: igen Databricks Runtime 12.2 LTS és újabb csak a Unity Catalog esetében jelölve: igen

    Fontos

    Ez a funkció a nyilvános előzetes verzióban érhető el.

    Hozzáad egy oszlopmaszk-függvényt a bizalmas adatok anonimizálásához. Az oszlop minden további lekérdezése megkapja a függvény kiértékelésének eredményét az oszlopon az oszlop eredeti értéke helyett. Ez hasznos lehet részletes hozzáférés-vezérlési célokra, ahol a függvény megvizsgálhatja az invokáló felhasználó identitását vagy csoporttagságát annak megállapításához, hogy az értéket újra kívánja-e használni.

  • DROP MASK

    A következőkre vonatkozik:igen bejelölve csak a Unity Catalog-ra

    Fontos

    Ez a funkció a nyilvános előzetes verzióban érhető el.

    Eltávolítja az oszlophoz tartozó oszlopmaszkot, ha van ilyen. Az oszlop jövőbeli lekérdezései megkapják az oszlop eredeti értékeit.

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

    A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 13.3 LTS és újabb

    Címkék alkalmazása az oszlopra. Az oszlophoz címkék hozzáadásához APPLY TAG engedéllyel kell rendelkeznie.

    • tag_name

      Egy szó szerinti STRING. A tag_name egyedinek kell lennie a táblában vagy oszlopban.

    • tag_value

      Egy szó szerinti STRING.

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

    A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 13.3 LTS és újabb

    Távolítsa el a címkéket az oszlopból. Az oszlop címkéinek eltávolításához APPLY TAG engedéllyel kell rendelkeznie.

    • tag_name

      Egy szó szerinti STRING. A tag_name egyedinek kell lennie a táblában vagy oszlopban.

DROP COLUMN záradék

Fontos

Ez a funkció a nyilvános előzetes verzióban érhető el.

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 11.3 LTS és újabb

Egy vagy több oszlop vagy mező elvetése egy relációban.

Ha elvet egy oszlopot vagy mezőt, el kell dobnia a függő ellenőrzési korlátozásokat és a létrehozott oszlopokat.

A követelmények megtekintéséhez lásd: Oszlopok átnevezése és törlése a Delta Lake oszlopleképezéssel.

Szintaxis

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

Paraméterek

  • IF EXISTS

    A IF EXISTSmegadásakor az Azure Databricks figyelmen kívül hagyja a nem létező oszlopok elvetésére tett kísérletet. Ellenkező esetben a nem meglévő oszlopok elvetése hibát fog okozni.

  • column_identifier

    A meglévő oszlop neve.

  • field_name

    Egy meglévő mező teljes neve.

A COLUMN záradék ÁTNEVEZÉSE

Fontos

Ez a funkció a nyilvános előzetes verzióban érhető el.

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 10.4 LTS és újabb

Átnevez egy oszlopot vagy mezőt egy oszlopleképezéshez engedélyezett Delta Lake-táblában.

Ha átnevez egy oszlopot vagy mezőt, módosítania kell a függő ellenőrzési korlátozásokat és a létrehozott oszlopokat is. Az oszlopot használó elsődleges és idegen kulcsok törölve lesznek. Idegen kulcsok esetén annak a táblának kell a tulajdonosának lenned, amelyen az idegen kulcs definiálva van.

A követelményekről és az oszlopleképezés engedélyezéséről az Oszlopok átnevezése és elvetése Delta Lake-oszlopleképezésselcímű témakörben olvashat.

Szintaxis

RENAME COLUMN { column_identifier TO to_column_identifier|
                field_name TO to_field_identifier }

Paraméterek

Példák

Lásd ALTER TABLE példákat.