ALTER TABLE KLAUZULA COLUMN
Dotyczy: Databricks SQL Databricks Runtime
Dodaje, modyfikuje lub odrzuca kolumnę w tabeli lub polu w kolumnie w tabeli usługi Delta Lake.
Wymagane uprawnienia
Jeśli używasz wykazu aparatu Unity, musisz mieć MODIFY
uprawnienia do:
- ALTER COLUMN
- DODAWANIE KOLUMNY
- UPUŚĆ KOLUMNĘ
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 }
ADD COLUMN, klauzula
Ta klauzula nie jest obsługiwana w przypadku JDBC
źródeł danych.
Dodaje do tabeli co najmniej jedną kolumnę lub pola do istniejących kolumn w tabeli usługi 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
[ DEFAULT clause ] [ COMMENT comment ] [ FIRST | AFTER identifier ]
[ MASK clause ] } [, ...] ) }
Parametry
-
Nazwa kolumny do dodania. Nazwa musi być unikatowa w tabeli.
Jeśli kolumna
FIRST
lub pole nieAFTER name
zostaną określone, zostaną dołączone na końcu. -
W pełni kwalifikowana 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ć unikatowa.
DEFAULT default_expression
Dotyczy: Databricks SQL Databricks Runtime 11.3 LTS i nowsze
DEFAULT
Definiuje wartość kolumny, która jest używana wINSERT
kolumnie iMERGE ... INSERT
gdy kolumna nie jest określona.Jeśli nie określono wartości domyślnej,
DEFAULT NULL
oznacza to, że kolumny dopuszczane do wartości null.default_expression
może składać się z literałów i wbudowanych funkcji LUB operatorów SQL, z wyjątkiem:- Agregujących
- Funkcje okna analitycznego
- Funkcje okna klasyfikacji
- Funkcje generatora wartości tabeli
default_expression
nie może zawierać żadnego podzapytania.DEFAULT
program jest obsługiwany w przypadkuCSV
źródeł ,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.
COMMENT comment
Opcjonalny
STRING
literał opisujący dodaną kolumnę lub pole.Jeśli chcesz dodać komentarz wygenerowany przez sztuczną inteligencję dla tabeli lub kolumny tabeli zarządzanej przez wykaz aparatu Unity, zobacz Dodawanie komentarzy wygenerowanych przez sztuczną inteligencję do obiektów wykazu aparatu Unity.
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
identifierJeśli określono kolumnę lub pole zostanie dodane natychmiast po polu lub kolumnie
identifier
.-
Dotyczy: Databricks SQL Databricks Runtime 12.2 LTS i nowszy tylko wykaz aparatu 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ść.
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 |
SET { MASK clause } |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause } }
Parametry
-
Nazwa kolumny, która ma zostać zmieniona.
-
W pełni kwalifikowana nazwa pola do zmiany. Wszystkie składniki ścieżki do zagnieżdżonego pola muszą istnieć.
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
data_typeDotyczy: 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
CHAR
kolumny na , na przykład zCHAR(5)
naVARCHAR
VARCHAR(5)
- Zmiana typu kolumny
CHAR
STRING
naVARCHAR
, 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.
Source type 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 dopuszczanych wartości null jest to równoważne .
SET DEFAULT NULL
W przypadku kolumn zdefiniowanych zaNOT NULL
pomocą polecenia należy podać wartość dla każdej przyszłejINSERT
operacjiSET DEFAULT default_expression
Dotyczy: Databricks SQL Databricks Runtime 11.3 LTS i nowsze
DEFAULT
Definiuje wartość kolumny, która jest używana wINSERT
kolumnie iMERGE ... INSERT
gdy kolumna nie jest określona.Jeśli nie określono
DEFAULT NULL
wartości domyślnej dla kolumn dopuszczanych do wartości null.default_expression
może składać się z literałów, wbudowanych funkcji SQL lub operatorów z wyjątkiem:- Agregujących
- Funkcje okna analitycznego
- Funkcje okna klasyfikacji
- Funkcje generatora wartości tabeli
default_expression
nie może zawierać podzapytania.DEFAULT
program jest obsługiwany w przypadkuCSV
źródeł ,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ę.-
Dotyczy: Databricks SQL Databricks Runtime 12.2 LTS i nowszy tylko wykaz aparatu 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 wykaz aparatu 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
Literał
STRING
. Elementtag_name
musi być unikatowy w tabeli lub kolumnie.tag_value
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
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
Upuść co najmniej jedną kolumnę lub pola w tabeli usługi Delta Lake.
Po usunięciu kolumny lub pola należy usunąć ograniczenia sprawdzania zależnego i wygenerowane kolumny.
Aby uzyskać informacje o wymaganiach, zobacz Zmienianie nazwy i usuwanie kolumn za pomocą mapowania kolumn usługi 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ą porzucone. 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 PRZYKŁADY ALTER TABLE.