Uwaga
Dostęp do tej strony wymaga autoryzacji. Może 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, widoku zmaterializowanym albo pole w kolumnie w tabeli Delta Lake.
Wymagane uprawnienia
Jeśli używasz Unity Catalog, musisz mieć MODIFY
uprawnienia do:
ALTER COLUMN
ADD COLUMN
DROP 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
FIRST
lubAFTER name
nie 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.
DEFAULT default_expression
Dotyczy:
Databricks SQL
Databricks Runtime 11.3 LTS i nowsze
Definiuje wartość dla kolumny
DEFAULT
, która jest używana wINSERT
iMERGE ... INSERT
w przypadku, gdy kolumna nie jest określona. Wszystkie literałySTRING
i funkcjeSTRING
znajdujące się w wyrażeniu domyślnym będą korzystać z sortowaniaUTF8_BINARY
.Jeśli nie określono wartości domyślnej,
DEFAULT NULL
jest stosowany domyślnie dla kolumn dopuszczających wartości null.default_expression
moż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_expression
nie może zawierać żadnego podzapytania.DEFAULT
jest obsługiwany dla źródełCSV
,JSON
,PARQUET
iORC
.-
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.
COLLATE
nazwa_porządkowaniaW przypadku
data_type
STRING
opcjonalnie określa sortowanie do użycia z kolumną lub polem. Jeśli nie określono sortowania, toUTF8_BINARY
ma zastosowanie.COMMENT comment
Opcjonalny
STRING
literał 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.
FIRST
Jeśli zostanie określona kolumna zostanie dodana jako pierwsza kolumna tabeli, lub pole zostanie dodane jako pierwsze pole w zawierającej strukturę.
AFTER
identyfikatorJeś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 Unity
Waż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 comment
Zmienia opis kolumny
column_name
.comment
musi być literałemSTRING
.FIRST
lubAFTER
identyfikatorPrzenosi kolumnę z bieżącej pozycji do przodu (
FIRST
) lub natychmiastAFTER
identifier
. Ta klauzula jest obsługiwana tylko wtedy, gdytable_name
jest tabelą delty.TYPE
typ_danychDotyczy:
Databricks SQL
Databricks Runtime 15.2 i nowsze
Zmienia typ danych kolumny
column_name
.Ta klauzula jest obsługiwana tylko wtedy, gdy
table_name
jest tabelą delty.Następujące zmiany typu są obsługiwane dla wszystkich tabel delta:
- Zwiększanie rozmiaru
VARCHAR
kolumny, na przykład zVARCHAR(5)
doVARCHAR(10)
- Zmiana typu kolumny
CHAR
naVARCHAR
, na przykład zCHAR(5)
naVARCHAR(5)
- Zmiana typu kolumny
CHAR
VARCHAR
naSTRING
, na przykład zVARCHAR(10)
naSTRING
.
Następujące zmiany typu są obsługiwane w przypadku tabel delty z
delta.enableTypeWidening
ustawionym 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 BYTE
SHORT
, ,INT
,BIGINT
, ,DECIMAL
DOUBLE
SHORT
INT
, ,BIGINT
, ,DECIMAL
DOUBLE
INT
BIGINT
DECIMAL
,DOUBLE
BIGINT
DECIMAL
,DOUBLE
FLOAT
DOUBLE
DECIMAL
DECIMAL
z większą precyzją i skaląDATE
TIMESTAMP_NTZ
Aby uzyskać bardziej szczegółowe informacje na temat rozszerzania typu, zobacz Rozszerzenie typu.
- Zwiększanie rozmiaru
SET NOT NULL
lubDROP NOT NULL
Zmienia domenę prawidłowych wartości kolumn, aby wykluczyć wartości null
SET NOT NULL
lub 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 IDENTITY
Dotyczy:
Databricks SQL
Databricks Runtime 10.4 LTS i nowsze
Zsynchronizuj 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
, gdzien
jest 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 DEFAULT
Dotyczy:
Databricks SQL
Databricks Runtime 11.3 LTS i nowsze
Usuwa 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 NULL
należy podać wartość podczas każdej przyszłejINSERT
operacjiSET DEFAULT default_expression
Dotyczy:
Databricks SQL
Databricks Runtime 11.3 LTS i nowsze
Definiuje wartość dla kolumny
DEFAULT
, która jest używana wINSERT
iMERGE ... INSERT
w przypadku, gdy kolumna nie jest określona.Jeśli nie określono wartości domyślnej,
DEFAULT NULL
jest domyślnie używane dla kolumn dopuszczających wartości null.default_expression
moż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_expression
nie może zawierać podzapytania.DEFAULT
jest obsługiwany dla źródełCSV
,JSON
,ORC
iPARQUET
.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
rand
lubcurrent_timestamp
wartość 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ę.SET
KLAUZULA MASKADotyczy:
Databricks SQL
Databricks Runtime 12.2 LTS i nowsze
tylko katalog Unity
Waż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 MASK
Dotyczy:
tylko katalog Unity
Waż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 nowsze
Zastosuj tagi do kolumny. Musisz mieć
APPLY TAG
uprawnienia do dodawania tagów do kolumny.tag_name
Jakiś literał
STRING
. Elementtag_name
musi być unikatowy w tabeli lub kolumnie.tag_value
Jakiś literał
STRING
.
UNSET TAGS ( tag_name [, ...] )
Dotyczy:
Databricks SQL
Databricks Runtime 13.3 LTS i nowsze
Usuń tagi z kolumny. Musisz mieć
APPLY TAG
uprawnienia do usuwania tagów z kolumny.tag_name
Jakiś literał
STRING
. Elementtag_name
musi 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 EXISTS
Po określeniu parametru
IF EXISTS
usł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.