Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: Databricks SQL
Databricks Runtime
Aggiunge, modifica o elimina una colonna in una tabella o una vista materializzata oppure un campo in una colonna di una tabella Delta Lake.
Autorizzazioni necessarie
Se si usa il catalogo Unity, è necessario disporre MODIFY
delle autorizzazioni per:
ALTER COLUMN
ADD COLUMN
DROP COLUMN
Tutte le altre operazioni richiedono il possesso della tabella.
Sintassi
ALTER TABLE table_name
{ ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause }
AGGIUNGI clausola COLUMN
Questa clausola non è supportata per le JDBC
origini dati.
Aggiunge una o più colonne alla tabella oppure campi alle colonne esistenti in una tabella Delta Lake.
Nota
Quando si aggiunge una colonna a una tabella Delta esistente, non è possibile definire un DEFAULT
valore. Tutte le colonne aggiunte alle tabelle Delta vengono considerate come NULL
per le righe esistenti. Dopo aver aggiunto una colonna, è possibile definire facoltativamente un valore predefinito per la colonna, ma viene applicato solo per le nuove righe inserite nella tabella. Usare la sintassi seguente:
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_expression
Sintassi
{ ADD [ COLUMN | COLUMNS ]
( { { column_identifier | field_name } data_type
[ COLLATE collation_name ]
[ DEFAULT clause ]
[ COMMENT comment ]
[ FIRST | AFTER identifier ]
[ MASK clause ] } [, ...] ) }
Parametri
-
Nome della colonna da aggiungere. Il nome deve essere univoco all'interno della tabella.
A meno che non vengano specificati
FIRST
oAFTER name
, la colonna o il campo verrà accodato alla fine. -
Nome completo del campo da aggiungere a una colonna esistente. Tutti i componenti del percorso del campo annidato devono esistere e il nome del campo stesso deve essere univoco.
DEFAULT default_expression
Si applica a:
Databricks SQL
Databricks Runtime 11.3 LTS e versioni successive
Definisce un
DEFAULT
valore per la colonna utilizzata suINSERT
eMERGE ... INSERT
quando la colonna non viene specificata. I valori letteraliSTRING
e le funzioniSTRING
nell'espressione predefinita useranno le regole di confrontoUTF8_BINARY
.Se non viene specificato alcun valore predefinito,
DEFAULT NULL
è implicito per le colonne nullable.default_expression
può essere composto da valori letterali e funzioni o operatori SQL predefiniti, ad eccezione di:- Funzioni di aggregazione
- funzioni della finestra analitica
- funzioni di finestra di classifica
- Funzioni generatrici con valori tabulari
default_expression
non deve contenere alcuna sottoquery.DEFAULT
è supportato per le originiCSV
,JSON
,PARQUET
, eORC
.-
Specifica il tipo di dati della colonna o del campo. Non tutti i tipi di dati supportati da Azure Databricks sono supportati da tutte le origini dati.
COLLATE
collation_namePer
data_type
STRING
specifica facoltativamente le regole di confronto da utilizzare con la colonna o il campo. Se non specificato, si applica l'ordinamentoUTF8_BINARY
.COMMENT comment
Valore letterale facoltativo del
STRING
che descrive la colonna o il campo aggiunto.Per aggiungere un commento generato dall'intelligenza artificiale per una tabella o una colonna di tabella gestita da Unity Catalog, vedere Aggiungere commenti generati dall'intelligenza artificiale agli oggetti del catalogo unity.
FIRST
Se viene specificata la colonna verrà aggiunta come prima colonna della tabella oppure il campo verrà aggiunto come primo campo di nello struct contenitore.
AFTER
identificatoreSe si specifica la colonna o il campo verrà aggiunto immediatamente dopo il campo o la colonna
identifier
.-
Si applica a: Databricks SQL
Databricks Runtime 12.2 LTS e versioni successive
solo al catalogo Unity
Importante
Questa funzionalità è disponibile in anteprima pubblica.
Aggiunge una funzione di mascheratura delle colonne per rendere anonimi i dati sensibili. Tutte le query successive da tale colonna riceveranno il risultato della valutazione di tale funzione sulla colonna al posto del valore originale della colonna. Ciò può essere utile per scopi di controllo di accesso con granularità fine, in cui la funzione può esaminare l'identità o le appartenenze a gruppi dell'utente che richiama per decidere se revisionare il valore.
Clausola ALTER COLUMN
Si applica a: Databricks SQL
Databricks Runtime
Modifica una proprietà o la posizione di una colonna.
Sintassi
{ 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 }
[, ... ]
Prima di Databricks Runtime 16.3 la clausola non supporta la modifica di più colonne in una singola clausola.
{ ALTER | CHANGE } [ COLUMN ]
{ column_identifier | field_name }
{ SET { MASK clause } |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause }
Parametri
-
Nome della colonna da modificare.
Se viene fatto riferimento più volte a un identificatore di colonna, Azure Databricks genera NOT_SUPPORTED_CHANGE_SAME_COLUMN.
-
Nome esatto e completo del campo da modificare. Tutti i componenti del percorso del campo annidato devono esistere.
Se viene fatto riferimento più volte a un nome di campo, Azure Databricks genera NOT_SUPPORTED_CHANGE_SAME_COLUMN.
COMMENT comment
Cambiare la descrizione della colonna
column_name
.comment
deve essere un valoreSTRING
letterale.FIRST
o unAFTER
identificatoreSposta la colonna dalla posizione corrente in prima posizione (
FIRST
) o immediatamenteAFTER
identifier
. Questa clausola è supportata solo setable_name
è una tabella Delta.TYPE
tipo_di_datoSi applica a:
Databricks SQL
Databricks Runtime 15.2 e versioni successive
Cambia il tipo di dati della colonna
column_name
.Questa clausola è supportata solo se
table_name
è una tabella Delta.Per tutte le tabelle Delta sono supportate le modifiche di tipo seguenti:
- Aumento delle dimensioni di una
VARCHAR
colonna, ad esempio daVARCHAR(5)
aVARCHAR(10)
- Modificare il tipo di una colonna
CHAR
inVARCHAR
, ad esempio daCHAR(5)
inVARCHAR(5)
- Modificare il tipo di una colonna
CHAR
oVARCHAR
inSTRING
, ad esempio, daVARCHAR(10)
inSTRING
.
Le modifiche di tipo seguenti sono supportate per le tabelle Delta con
delta.enableTypeWidening
impostato sutrue
:Importante
Questa funzionalità è disponibile in anteprima pubblica in Databricks Runtime 15.2 e versioni successive.
Tipo di origine Tipi più ampi supportati BYTE
SHORT
,INT
,BIGINT
,DECIMAL
DOUBLE
SHORT
INT
,BIGINT
,DECIMAL
DOUBLE
INT
BIGINT
,DECIMAL
,DOUBLE
BIGINT
DECIMAL
,DOUBLE
FLOAT
DOUBLE
DECIMAL
DECIMAL
con maggiore precisione e scalaDATE
TIMESTAMP_NTZ
Per informazioni più dettagliate sull'estensione dei tipi, vedere Estensione dei tipi.
- Aumento delle dimensioni di una
SET NOT NULL
oppureDROP NOT NULL
Modifica il dominio dei valori di colonna validi per escludere valori Null
SET NOT NULL
oppure includerliDROP NOT NULL
. Questa opzione è supportata solo per le tabelle Delta Lake. Delta Lake garantisce che il vincolo sia valido per tutti i dati nuovi e esistenti.SYNC IDENTITY
Si applica a:
Databricks SQL
Databricks Runtime 10.4 LTS e versioni successive
Sincronizzare i metadati di una colonna Identity con i dati effettivi. Quando si scrivono valori personalizzati in una colonna Identity, potrebbe non essere conforme ai metadati. Questa opzione valuta lo stato e aggiorna i metadati in modo che siano coerenti con i dati effettivi. Dopo questo comando, il prossimo valore di identità assegnato automaticamente inizierà da
start + (n + 1) * step
, doven
è il valore più piccolo che soddisfastart + n * step >= max()
(per un incremento positivo).Questa opzione è supportata solo per le colonne Identity nelle tabelle Delta Lake.
DROP DEFAULT
Si applica a:
Databricks SQL
Databricks Runtime 11.3 LTS e versioni successive
Rimuove l'espressione predefinita dalla colonna. Per le colonne annullabili equivale a
SET DEFAULT NULL
. Per le colonne definite conNOT NULL
è necessario fornire un valore per ogni operazione futuraINSERT
SET DEFAULT default_expression
Si applica a:
Databricks SQL
Databricks Runtime 11.3 LTS e versioni successive
Definisce un
DEFAULT
valore per la colonna utilizzata suINSERT
eMERGE ... INSERT
quando la colonna non viene specificata.Se non viene specificato alcun valore predefinito,
DEFAULT NULL
è implicito per le colonne nullable.default_expression
può essere composto da valori letterali, funzioni SQL predefinite o operatori ad eccezione di:- Funzioni di aggregazione
- funzioni della finestra analitica
- funzioni di finestra di classifica
- Funzioni generatrici con valori tabulari
default_expression
non deve contenere una sottoquery.DEFAULT
è supportato per le originiCSV
,JSON
,ORC
, ePARQUET
.Quando si definisce l'impostazione predefinita per una colonna appena aggiunta, l'impostazione predefinita si applica a tutte le righe preesistenti. Se il valore predefinito include una funzione non deterministica,
rand
ad esempio ocurrent_timestamp
il valore, viene calcolato una volta quandoALTER TABLE
viene eseguito e applicato come costante alle righe preesistenti. Per le righe appena inserite, l'espressione predefinita viene eseguita una volta per ogni riga.Quando si imposta un valore predefinito usando
ALTER COLUMN
, le righe esistenti non sono interessate da tale modifica.SET
Clausola MASKSi applica a: Databricks SQL
Databricks Runtime 12.2 LTS e versioni successive
solo al catalogo Unity
Importante
Questa funzionalità è disponibile in anteprima pubblica.
Aggiunge una funzione di mascheratura delle colonne per rendere anonimi i dati sensibili. Tutte le query successive da tale colonna riceveranno il risultato della valutazione di tale funzione sulla colonna al posto del valore originale della colonna. Ciò può essere utile per scopi di controllo di accesso con granularità fine, in cui la funzione può esaminare l'identità o le appartenenze a gruppi dell'utente che richiama per decidere se revisionare il valore.
DROP MASK
Si applica a:
solo Catalogo Unity
Importante
Questa funzionalità è disponibile in anteprima pubblica.
Rimuove la maschera di colonna per questa colonna, se presente. Le future query su questa colonna otterranno i valori originali della colonna.
SET TAGS ( { tag_name = tag_value } [, ...] )
Si applica a:
Databricks SQL
Databricks Runtime 13.3 LTS e versioni successive
Applicare tag alla colonna. È necessario disporre
APPLY TAG
dell'autorizzazione per aggiungere tag alla colonna.tag_name
Valore letterale
STRING
.tag_name
deve essere univoco all'interno della tabella o della colonna.tag_value
Valore letterale
STRING
.
UNSET TAGS ( tag_name [, ...] )
Si applica a:
Databricks SQL
Databricks Runtime 13.3 LTS e versioni successive
Rimuovere i tag dalla colonna. È necessario disporre
APPLY TAG
dell'autorizzazione per rimuovere i tag dalla colonna.tag_name
Valore letterale
STRING
.tag_name
deve essere univoco all'interno della tabella o della colonna.
Clausola DROP COLUMN
Importante
Questa funzionalità è disponibile in anteprima pubblica.
Si applica a: Databricks SQL
Databricks Runtime 11.3 LTS e versioni successive
Eliminare una o più colonne o campi in una relazione.
Quando si rilascia una colonna o un campo, è necessario eliminare i vincoli di controllo dipendenti e le colonne generate.
Per i requisiti, vedere Rinominare e rimuovere colonne con il mapping di colonne Delta Lake.
Sintassi
DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )
Parametri
IF EXISTS
Quando si specifica
IF EXISTS
, Azure Databricks ignora un tentativo di eliminare colonne che non esistono. In caso contrario, l'eliminazione di colonne non esistenti genererà un errore.-
Nome della colonna esistente.
-
Nome completo di un campo esistente.
Clausola RENAME COLUMN
Importante
Questa funzionalità è disponibile in anteprima pubblica.
Si applica a: Databricks SQL
Databricks Runtime 10.4 LTS e versioni successive
Rinomina una colonna o un campo in una tabella Delta Lake abilitata per il mapping delle colonne.
Quando si rinomina una colonna o un campo, è anche necessario modificare i vincoli check dipendenti e le colonne generate. Tutte le chiavi primarie e le chiavi esterne che usano la colonna verranno eliminate. Nel caso di chiavi esterne, è necessario essere proprietari della tabella in cui è definita la chiave esterna.
Per i requisiti e come abilitare il mapping delle colonne, consulta Rinominare ed eliminare colonne con il mapping delle colonne Delta Lake.
Sintassi
RENAME COLUMN { column_identifier TO to_column_identifier|
field_name TO to_field_identifier }
Parametri
-
Nome della colonna esistente.
-
Il nuovo identificatore della colonna. L’identificatore deve essere univoco all'interno della tabella.
-
Nome completo esistente di un campo.
-
Nuovo identificatore di campo. L'identificatore deve essere univoco all'interno dello struct locale.
Esempi
Vedi ALTER TABLE esempi.