Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
Databricks SQL
Databricks Runtime
Dodaje, modyfikuje lub usuwa kolumnę w tabeli lub pole w tabeli usługi Delta Lake.
Wymagane uprawnienia
Jeśli używasz Unity Catalog, musisz mieć MODIFY uprawnienia do:
ALTER COLUMNADD COLUMNDROP COLUMN
Wszystkie inne operacje wymagają własności tabeli.
Składnia
ALTER TABLE table_name
{ ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause }
DODAJ klauzulę COLUMN
Ta klauzula nie jest obsługiwana w przypadku JDBC źródeł danych.
Dodaje do tabeli jedną lub więcej kolumn, albo pola do istniejących kolumn w tabeli Delta Lake.
Uwaga
Podczas dodawania kolumny do istniejącej tabeli delty nie można zdefiniować DEFAULT wartości. Wszystkie kolumny dodane do tabel delty są traktowane jako NULL dla istniejących wierszy. Po dodaniu kolumny można opcjonalnie zdefiniować wartość domyślną dla kolumny, ale jest ona stosowana tylko dla nowych wierszy wstawionych do tabeli. Użyj następującej składni:
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_expression
Składnia
{ ADD [ COLUMN | COLUMNS ]
( { { column_identifier | field_name } data_type
[ COLLATE collation_name ]
[ DEFAULT clause ]
[ COMMENT comment ]
[ FIRST | AFTER identifier ]
[ MASK clause ] } [, ...] ) }
Parametry
-
Nazwa kolumny do dodania. Nazwa musi być unikatowa w tabeli.
Jeśli
FIRSTlubAFTER namenie zostaną określone, kolumna lub pole zostaną dołączone na końcu. -
Kompletna nazwa pola do dodania do istniejącej kolumny. Wszystkie składniki ścieżki do zagnieżdżonego pola muszą istnieć, a sama nazwa pola musi być unikalna.
Aby dodać pola do struktur zagnieżdżonych w systemie
ARRAYlubMAPtypów, użyj następujących nazw specjalnych:-
ELEMENTaby przejść doARRAYelementu. -
KEY, aby przejść doMAPklucza. -
VALUEaby przejść doMAPwartości.
Na przykład:
phonenumbers.element.countrycodedodaje polecountrycodedo każdego elementu tablicyphonenumbers. -
DEFAULT default_expressionDotyczy:
Databricks SQL
Databricks Runtime 11.3 LTS i nowszeDefiniuje wartość dla kolumny
DEFAULT, która jest używana wINSERTiMERGE ... INSERTw przypadku, gdy kolumna nie jest określona. Wszystkie literałySTRINGi funkcjeSTRINGznajdujące się w wyrażeniu domyślnym będą korzystać z sortowaniaUTF8_BINARY.Jeśli nie określono wartości domyślnej,
DEFAULT NULLjest stosowany domyślnie dla kolumn dopuszczających wartości null.default_expressionmoże składać się z literałów i wbudowanych funkcji LUB operatorów SQL, z wyjątkiem:- Funkcje agregujące
- Funkcje okna analitycznego
- Funkcje okna klasyfikacji
- Funkcje generatora wartości tabeli
default_expressionnie może zawierać żadnego podzapytania.DEFAULTjest obsługiwany dla źródełCSV,JSON,PARQUETiORC.-
Określa typ danych kolumny lub pola. Nie wszystkie typy danych obsługiwane przez usługę Azure Databricks są obsługiwane przez wszystkie źródła danych.
COLLATEnazwa_porządkowaniaW przypadku
data_typeSTRINGopcjonalnie określa sortowanie do użycia z kolumną lub polem. Jeśli nie określono sortowania, toUTF8_BINARYma zastosowanie.COMMENT commentOpcjonalny
STRINGliterał opisujący dodaną kolumnę lub pole.Jeśli chcesz dodać komentarz AI dla tabeli lub kolumny tabeli zarządzanej przez Unity Catalog, zobacz Dodawanie AI-generowanych komentarzy do obiektów Unity Catalog.
FIRSTJeśli zostanie określona kolumna zostanie dodana jako pierwsza kolumna tabeli, lub pole zostanie dodane jako pierwsze pole w zawierającej strukturę.
AFTERidentyfikatorJeśli określono, kolumna lub pole zostanie dodane od razu po polu lub kolumnie
identifier.-
Dotyczy:
Databricks SQL
Databricks Runtime 12.2 LTS i nowsze
tylko katalog UnityWażne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
Dodaje funkcję maski kolumn do anonimowości poufnych danych. Wszystkie kolejne zapytania z tej kolumny otrzymają wynik oceny tej funkcji w kolumnie zamiast oryginalnej wartości kolumny. Może to być przydatne w celach szczegółowej kontroli dostępu, w których funkcja może sprawdzić tożsamość lub członkostwo w grupach użytkownika wywołującego w celu określenia, czy zredagować wartość.
Instrukcja ALTER COLUMN klauzula
Dotyczy:
Databricks SQL
Databricks Runtime
Zmienia właściwość lub lokalizację kolumny.
Składnia
{ 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 }
[, ... ]
Przed środowiskiem Databricks Runtime 16.3 klauzula nie obsługuje zmiany wielu kolumn w jednej klauzuli.
{ ALTER | CHANGE } [ COLUMN ]
{ column_identifier | field_name }
{ SET { MASK clause } |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause }
Parametry
-
Nazwa kolumny, która ma zostać zmieniona.
Jeśli identyfikator kolumny jest przywoływany więcej niż raz, usługa Azure Databricks zgłasza błąd NOT_SUPPORTED_CHANGE_SAME_COLUMN.
-
W pełni kwalifikowana nazwa pola do zmiany. Wszystkie składniki ścieżki do zagnieżdżonego pola muszą istnieć.
Jeśli nazwa pola jest przywołynięta więcej niż raz, usługa Azure Databricks zgłasza NOT_SUPPORTED_CHANGE_SAME_COLUMN.
COMMENT commentZmienia opis kolumny
column_name.commentmusi być literałemSTRING.FIRSTlubAFTERidentyfikatorPrzenosi kolumnę z bieżącej pozycji do przodu (
FIRST) lub natychmiastAFTERidentifier. Ta klauzula jest obsługiwana tylko wtedy, gdytable_namejest tabelą delty.TYPEtyp_danychDotyczy:
Databricks SQL
Databricks Runtime 15.2 i nowszeZmienia typ danych kolumny
column_name.Ta klauzula jest obsługiwana tylko wtedy, gdy
table_namejest tabelą delty.Następujące zmiany typu są obsługiwane dla wszystkich tabel delta:
- Zwiększanie rozmiaru
VARCHARkolumny, na przykład zVARCHAR(5)doVARCHAR(10) - Zmiana typu kolumny
CHARnaVARCHAR, na przykład zCHAR(5)naVARCHAR(5) - Zmiana typu kolumny
CHARVARCHARnaSTRING, na przykład zVARCHAR(10)naSTRING.
Następujące zmiany typu są obsługiwane w przypadku tabel delty z
delta.enableTypeWideningustawionym natrue:Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej w środowisku Databricks Runtime 15.2 lub nowszym.
Typ źródła Obsługiwane szersze typy BYTESHORT, ,INT,BIGINT, ,DECIMALDOUBLESHORTINT, ,BIGINT, ,DECIMALDOUBLEINTBIGINTDECIMAL,DOUBLEBIGINTDECIMAL,DOUBLEFLOATDOUBLEDECIMALDECIMALz większą precyzją i skaląDATETIMESTAMP_NTZAby uzyskać bardziej szczegółowe informacje na temat rozszerzania typu, zobacz Rozszerzenie typu.
- Zwiększanie rozmiaru
SET NOT NULLlubDROP NOT NULLZmienia domenę prawidłowych wartości kolumn, aby wykluczyć wartości null
SET NOT NULLlub uwzględnić wartości nullDROP NOT NULL. Ta opcja jest obsługiwana tylko w przypadku tabel usługi Delta Lake. Usługa Delta Lake zapewni, że ograniczenie jest prawidłowe dla wszystkich istniejących i nowych danych.SYNC IDENTITYDotyczy:
Databricks SQL
Databricks Runtime 10.4 LTS i nowszeZsynchronizuj metadane kolumny tożsamości z rzeczywistymi danymi. Podczas zapisywania własnych wartości w kolumnie tożsamości może ona nie być zgodna z metadanymi. Ta opcja ocenia stan i aktualizuje metadane tak, aby były zgodne z rzeczywistymi danymi. Po wykonaniu tego polecenia następna automatycznie przypisana wartość tożsamości rozpocznie się od
start + (n + 1) * step, gdzienjest najmniejszą wartością, która spełniastart + n * step >= max()(w przypadku pozytywnego kroku).Ta opcja jest obsługiwana tylko w przypadku kolumn tożsamości w tabelach usługi Delta Lake.
DROP DEFAULTDotyczy:
Databricks SQL
Databricks Runtime 11.3 LTS i nowszeUsuwa wyrażenie domyślne z kolumny. W przypadku kolumn zezwalających na wartości null jest to równoważne
SET DEFAULT NULL. W przypadku kolumn zdefiniowanych zNOT NULLnależy podać wartość podczas każdej przyszłejINSERToperacjiSET DEFAULT default_expressionDotyczy:
Databricks SQL
Databricks Runtime 11.3 LTS i nowszeDefiniuje wartość dla kolumny
DEFAULT, która jest używana wINSERTiMERGE ... INSERTw przypadku, gdy kolumna nie jest określona.Jeśli nie określono wartości domyślnej,
DEFAULT NULLjest domyślnie używane dla kolumn dopuszczających wartości null.default_expressionmoże składać się z literałów, wbudowanych funkcji SQL lub operatorów z wyjątkiem:- Funkcje agregujące
- Funkcje okna analitycznego
- Funkcje okna klasyfikacji
- Funkcje generatora wartości tabeli
default_expressionnie może zawierać podzapytania.DEFAULTjest obsługiwany dla źródełCSV,JSON,ORCiPARQUET.Podczas definiowania wartości domyślnej dla nowo dodanej kolumny wartość domyślna ma zastosowanie do wszystkich wstępnie istniejących wierszy. Jeśli wartość domyślna zawiera funkcję niedeterministyczną, taką jak
randlubcurrent_timestampwartość jest obliczana raz po wykonaniuALTER TABLE, i stosowana jako stała do wstępnie istniejących wierszy. W przypadku nowo wstawionych wierszy wyrażenie domyślne jest uruchamiane raz na wiersze.Jeśli ustawisz wartość domyślną przy użyciu polecenia
ALTER COLUMN, istniejące wiersze nie będą miały wpływu na zmianę.SETKLAUZULA MASKADotyczy:
Databricks SQL
Databricks Runtime 12.2 LTS i nowsze
tylko katalog UnityWażne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
Dodaje funkcję maski kolumn do anonimowości poufnych danych. Wszystkie kolejne zapytania z tej kolumny otrzymają wynik oceny tej funkcji w kolumnie zamiast oryginalnej wartości kolumny. Może to być przydatne w celach szczegółowej kontroli dostępu, w których funkcja może sprawdzić tożsamość lub członkostwo w grupach użytkownika wywołującego w celu określenia, czy zredagować wartość.
DROP MASKDotyczy:
tylko katalog UnityWażne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
Usuwa maskę kolumn dla tej kolumny, jeśli istnieje. Przyszłe zapytania z tej kolumny otrzymają oryginalne wartości kolumny.
SET TAGS ( { tag_name = tag_value } [, ...] )Dotyczy:
Databricks SQL
Databricks Runtime 13.3 LTS i nowszeZastosuj tagi do kolumny. Musisz mieć
APPLY TAGuprawnienia do dodawania tagów do kolumny.tag_name
Jakiś literał
STRING. Elementtag_namemusi być unikatowy w tabeli lub kolumnie.tag_value
Jakiś literał
STRING.
UNSET TAGS ( tag_name [, ...] )Dotyczy:
Databricks SQL
Databricks Runtime 13.3 LTS i nowszeUsuń tagi z kolumny. Musisz mieć
APPLY TAGuprawnienia do usuwania tagów z kolumny.tag_name
Jakiś literał
STRING. Elementtag_namemusi być unikatowy w tabeli lub kolumnie.
DROP COLUMN klauzula
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
Dotyczy:
Databricks SQL
Databricks Runtime 11.3 LTS i nowsze
Usuń jedną lub więcej kolumn albo pól z relacji.
Po usunięciu kolumny lub pola należy również usunąć zależne ograniczenia sprawdzania oraz wygenerowane kolumny.
Aby uzyskać informacje o wymaganiach, zobacz Zmiana nazwy i usuwanie kolumn przy użyciu mapowania kolumn Delta Lake.
Składnia
DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )
Parametry
IF EXISTSPo określeniu parametru
IF EXISTSusługa Azure Databricks ignoruje próbę porzucenia kolumn, które nie istnieją. W przeciwnym razie usunięcie nieistniejących kolumn spowoduje błąd.-
Nazwa istniejącej kolumny.
-
W pełni kwalifikowana nazwa istniejącego pola.
KLAUZULA RENAME COLUMN
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
Dotyczy:
Databricks SQL
Databricks Runtime 10.4 LTS i nowsze
Zmienia nazwę kolumny lub pola w tabeli usługi Delta Lake włączonej na potrzeby mapowania kolumn.
Zmiana nazwy kolumny lub pola wymaga również zmiany zależnych ograniczeń sprawdzania i wygenerowanych kolumn. Wszystkie klucze podstawowe i klucze obce używające kolumny zostaną usunięte. W przypadku kluczy obcych należy posiadać tabelę, w której zdefiniowano klucz obcy.
Aby uzyskać informacje o wymaganiach i sposobie włączania mapowania kolumn, zobacz Zmienianie nazwy i usuwanie kolumn za pomocą mapowania kolumn usługi Delta Lake.
Składnia
RENAME COLUMN { column_identifier TO to_column_identifier|
field_name TO to_field_identifier }
Parametry
-
Istniejąca nazwa kolumny.
-
Nowy identyfikator kolumny. Identyfikator musi być unikatowy w tabeli.
-
Istniejąca w pełni kwalifikowana nazwa pola.
-
Nowy identyfikator pola. Identyfikator musi być unikatowy w obrębie lokalnej struktury.
Przykłady
Zobacz ALTER TABLE przykłady.