ALTER TABLE Clausola COLUMN

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Aggiunge, modifica o elimina una colonna in una tabella o 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 la proprietà della tabella.

Sintassi

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

Clausola ADD COLUMN

Questa clausola non è supportata per le JDBC origini dati.

Aggiunge una o più colonne alla tabella o ai 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
      [ DEFAULT clause ] [ COMMENT comment ] [ FIRST | AFTER identifier ]
      [ MASK clause ] } [, ...] ) }

Parametri

  • column_identifier

    Nome della colonna da aggiungere. Il nome deve essere univoco all'interno della tabella.

    A meno che FIRST non venga specificata la AFTER name colonna o il campo verrà accodato alla fine.

  • field_name

    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:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 11.3 LTS e versioni successive

    Definisce un DEFAULT valore per la colonna utilizzata su INSERT e MERGE ... 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 e funzioni o operatori SQL predefiniti, ad eccezione di:

    default_expression non deve contenere alcuna sottoquery.

    DEFAULTè supportato per CSVle origini , JSONPARQUET, e ORC .

  • data_type

    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.

  • COMMENT comment

    Valore letterale facoltativo 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 a una tabella.

  • 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.

  • AFTERidentificatore

    Se si specifica la colonna o il campo verrà aggiunto immediatamente dopo il campo o la colonna identifier.

  • Clausola MASK

    Si applica a:segno di spunta sì Solo Databricks SQL segno di spunta sì Databricks Runtime 12.2 LTS e versioni successive segno di spunta sì al catalogo Unity

    Importante

    Questa funzionalità è disponibile in anteprima pubblica.

    Aggiunge una funzione maschera di colonna per rendere anonimi i dati sensibili. Tutte le query future 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à e/o le appartenenze a gruppi dell'utente che richiama per decidere se redigire il valore.

Clausola ALTER COLUMN

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì 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 |
    SET DEFAULT clause |
    DROP DEFAULT |
    SYNC IDENTITY |
    SET { MASK clause } |
    DROP MASK |
    SET TAGS clause |
    UNSET TAGS clause } }

Parametri

  • column_identifier

    Nome della colonna da modificare.

  • field_name

    Nome completo del campo da modificare. Tutti i componenti del percorso del campo annidato devono esistere.

  • COMMENT comment

    Modifica la descrizione della column_name colonna. comment deve essere un valore STRING letterale.

  • FIRST o AFTERidentificatore

    Sposta la colonna dalla posizione corrente alla parte anteriore (FIRST) o immediatamente AFTER all'oggetto identifier. Questa clausola è supportata solo se table_name è una tabella Delta.

  • SET NOT NULL oppure DROP NOT NULL

    Modifica il dominio dei valori di colonna validi per escludere i SET NOT NULLvalori Null oppure includere valori DROP NOT NULLNull. 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:segno di spunta sì Databricks SQL segno di spunta sì 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 valore identity assegnato automaticamente verrà avviato da start + (n + 1) * step, dove n è il valore più piccolo che soddisfa start + n * step >= max() (per un passaggio positivo).

    Questa opzione è supportata solo per le colonne Identity nelle tabelle Delta Lake.

  • DROP DEFAULT

    Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 11.3 LTS e versioni successive

    Rimuove l'espressione predefinita dalla colonna. Per le colonne nullable equivale a SET DEFAULT NULL. Per le colonne definite con NOT NULL è necessario fornire un valore per ogni operazione futura INSERT

  • SET DEFAULT default_expression

    Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 11.3 LTS e versioni successive

    Definisce un DEFAULT valore per la colonna utilizzata su INSERT e MERGE ... INSERT quando la colonna non viene specificata.

    Se non viene specificato DEFAULT NULL alcun valore predefinito è implicito per le colonne nullable.

    default_expression può essere composto da valori letterali, funzioni SQL predefinite o operatori ad eccezione di:

    default_expression non deve contenere una sottoquery.

    DEFAULTè supportato per CSVle origini , JSONORC, e PARQUET .

    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 o current_timestamp il valore, viene calcolato una volta quando ALTER 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.

  • SETClausola MASK

    Si applica a:segno di spunta sì Solo Databricks SQL segno di spunta sì Databricks Runtime 12.2 LTS e versioni successive segno di spunta sì al catalogo Unity

    Importante

    Questa funzionalità è disponibile in anteprima pubblica.

    Aggiunge una funzione maschera di colonna per rendere anonimi i dati sensibili. Tutte le query future 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à e/o le appartenenze a gruppi dell'utente che richiama per decidere se redigire il valore.

  • DROP MASK

    Si applica a:segno di spunta sì solo catalogo Unity

    Importante

    Questa funzionalità è disponibile in anteprima pubblica.

    Rimuove la maschera di colonna per questa colonna, se presente. Le query future di questa colonna riceveranno i valori originali della colonna.

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

    Si applica a:segno di spunta sì Databricks SQL segno di spunta sì 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. Deve tag_name essere univoco all'interno della tabella o della colonna.

    • tag_value

      Valore letterale STRING.

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

    Si applica a:segno di spunta sì Databricks SQL segno di spunta sì 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. Deve tag_name essere univoco all'interno della tabella o della colonna.

Clausola DROP COLUMN

Importante

Questa funzionalità è disponibile in anteprima pubblica.

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 11.3 LTS e versioni successive

Eliminare una o più colonne o campi in una tabella Delta Lake.

Quando si rilascia una colonna o un campo, è necessario eliminare vincoli check dipendenti e colonne generate.

Per i requisiti, vedere Rinominare ed eliminare colonne con 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.

  • column_identifier

    Nome della colonna esistente.

  • field_name

    Nome completo di un campo esistente.

Clausola RENAME COLUMN

Importante

Questa funzionalità è disponibile in anteprima pubblica.

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 11.3 LTS e versioni successive

Rinomina una colonna o un campo in una tabella Delta Lake.

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, vedere Rinominare ed eliminare colonne con mapping di colonne Delta Lake.

Sintassi

RENAME COLUMN { column_identifier TO to_column_identifier|
                field_name TO to_field_identifier }

Parametri

  • column_identifier

    Nome esistente della colonna.

  • to_column_identifier

    Nuovo identificatore di colonna. L'identificatore deve essere univoco all'interno della tabella.

  • field_name

    Nome completo esistente di un campo.

  • to_field_identifier

    Nuovo identificatore di campo. L'identificatore deve essere univoco all'interno dello struct locale.

Esempi

Vedere esempi di ALTER TABLE.