Condividi tramite


ALTER TABLE ... clausola COLUMN

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

Aggiunge, modifica o elimina un column in un table o un campo in un column in un Delta Lake table.

Autorizzazioni necessarie

Se si usa Unity Catalog è necessario disporre dell'autorizzazione MODIFY per:

  • ALTER COLUMN
  • ADD COLUMN
  • DROP COLUMN

Tutte le altre operazioni richiedono la proprietà del table.

Sintassi

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

clausola AGGIUNGI COLUMN

Questa clausola non è supportata per le JDBC origini dati.

Aggiunge uno o più columns a tableo campi alle columns esistenti in un Delta Lake table.

Nota

Quando si aggiunge un column a un tableDelta esistente, non è possibile definire un valore DEFAULT. Tutte le columns aggiunte a Delta tables vengono considerate come NULL per le righe esistenti. Dopo aver aggiunto un column, è possibile definire facoltativamente un valore predefinito per il column, ma viene applicato solo per le nuove righe inserite nel table. 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 ] } [, ...] ) }

Parameters

  • column_identifier

    Nome del column da aggiungere. Il nome deve essere univoco all'interno del table.

    A meno che non venga specificato FIRST o AFTER name il column o il campo verrà accodato alla fine.

  • field_name

    Nome completo del campo da aggiungere a un columnesistente. 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 valore di DEFAULT per l'column utilizzata in INSERT e MERGE ... INSERT quando il column non viene specificato. I valori letterali STRING e le funzioni STRING nell'espressione predefinita useranno le regole di confronto UTF8_BINARY.

    Se non viene specificato alcun valore predefinito, DEFAULT NULL è implicito per columnsnullable.

    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 le origini CSV, JSON, PARQUET, e ORC.

  • data_type

    Specifica il tipo di dati del column o del campo. Non tutti i tipi di dati supportati da Azure Databricks sono supportati da tutte le origini dati.

  • COLLATE collation_name

    Per data_typeSTRING facoltativamente specifica le regole di confronto da utilizzare con il campo o il column. Se non specificato, si applica l'ordinamento UTF8_BINARY.

  • COMMENT comment

    Valore letterale STRING facoltativo che descrive l'column o il campo aggiunto.

    Per aggiungere un commento generato dall'intelligenza artificiale per un table o un tablecolumn gestito da Unity Catalog, vedere Aggiungere commenti generati dall'intelligenza artificiale agli oggetti Catalog Unity.

  • FIRST

    Se specificato, il column verrà aggiunto come primo column del table, altrimenti il campo verrà aggiunto come primo campo nello struct contenitore.

  • AFTER identifier

    Se il column o il campo specificato viene indicato, verrà aggiunto immediatamente dopo il campo oppure columnidentifier.

  • Clausola MASK

    Si applica a:contrassegnato con un segno di spunta sì Databricks SQL contrassegnato con un segno di spunta sì Databricks Runtime 12.2 LTS e versioni successive contrassegnato con un segno di spunta sì solo Unity Catalog

    Importante

    Questa funzionalità è disponibile in anteprima pubblica.

    Aggiunge una funzione maschera column per rendere anonimi i dati sensibili. Tutte le query successive da tale column riceveranno il risultato dell'applicazione di quella funzione su column al posto del valore originale di column. Ciò può essere utile per scopi di controllo di accesso con granularità fine where la funzione può esaminare l'identità o le appartenenze ai gruppi dell'utente che richiama per determinare se redigire il valore.

clausola ALTER COLUMN

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

Modifica la proprietà o la posizione di un column.

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 |
    SET { MASK clause } |
    DROP MASK |
    SET TAGS clause |
    UNSET TAGS clause } }

Parameters

  • column_identifier

    Nome del column 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 del column_namecolumn. comment deve essere un valore STRING letterale.

  • FIRST oppure AFTER identifier

    Sposta il column dalla posizione corrente alla parte anteriore (FIRST) o immediatamente AFTER il identifier. Questa clausola è supportata solo se table_name è un tableDelta.

  • TYPE data_type

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

    Modifica il tipo di dati del column_namecolumn.

    Questa clausola è supportata solo se table_name è un tableDelta.

    Per tutte le tablesDelta sono supportate le modifiche di tipo seguenti:

    • Aumento delle dimensioni di un VARCHARcolumn, ad esempio da VARCHAR(5) a VARCHAR(10)
    • Modifica del tipo di un CHARcolumn in un VARCHAR, ad esempio da CHAR(5) a VARCHAR(5)
    • Modifica del tipo di un CHAR o di un VARCHARcolumn in STRING, ad esempio, da VARCHAR(10) a STRING.

    Le modifiche di tipo seguenti sono supportate per Delta tables da delta.enableTypeWideningset a true:

    Importante

    Questa funzionalità è disponibile in anteprima pubblica in Databricks Runtime 15.2 e versioni successive.

    Tipo di origine Altri tipi supportati
    BYTE SHORT, INT, BIGINT, DECIMALDOUBLE
    SHORT INT, BIGINT, DECIMALDOUBLE
    INT BIGINT, DECIMAL, DOUBLE
    BIGINT DECIMAL, DOUBLE
    FLOAT DOUBLE
    DECIMAL DECIMAL con maggiore precisione e scala
    DATE TIMESTAMP_NTZ

    Per informazioni più dettagliate sull'estensione dei tipi, vedere Estensione dei tipi.

  • SET NOT NULL oppure DROP NOT NULL

    Modifica il dominio di validità di columnvalues per escludere i valori null SET NOT NULLo includere i valori null DROP NOT NULL. Questa opzione è supportata solo per Delta Lake tables. Delta Lake garantisce che il constraint 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 un'identità column con i dati effettivi. Quando si scrive il proprio values su un'identità column, potrebbe non allinearsi 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. wheren è il valore più piccolo che soddisfa start + n * step >= max() (per un passo positivo).

    Questa opzione è supportata solo per l'identità columns su Delta Lake tables.

  • 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 dal column. Per columns nullable equivale a SET DEFAULT NULL. Per columns definito con NOT NULL è necessario fornire un valore per ogni operazione INSERT futura

  • 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 valore di DEFAULT per l'column utilizzata in INSERT e MERGE ... INSERT quando il column non viene specificato.

    Se non viene specificato alcun valore predefinito DEFAULT NULL è implicito per columnsnullable.

    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 le origini CSV, JSON, ORC, e PARQUET.

    Quando si definisce l'impostazione predefinita per un columnappena aggiunto, 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 set un'impostazione predefinita usando ALTER COLUMN, le righe esistenti non sono interessate da tale modifica.

  • SET Clausola MASK

    Si applica a:selezionata con segno di spunta sì Databricks SQL selezionata con segno di spunta sì Databricks Runtime 12.2 LTS e versioni successive selezionata con segno di spunta sìsolo Unity Catalog

    Importante

    Questa funzionalità è disponibile in anteprima pubblica.

    Aggiunge una funzione maschera column per rendere anonimi i dati sensibili. Tutte le query successive da quel column riceveranno, al posto del valore originale di column, il risultato della valutazione di quella funzione su column. Ciò può essere utile per scopi di controllo di accesso con granularità fine where la funzione può esaminare l'identità o le appartenenze ai gruppi dell'utente che richiama per determinare se redigire il valore.

  • DROP MASK

    Si applica a:con segno di spunta per sì Unity Catalog

    Importante

    Questa funzionalità è disponibile in anteprima pubblica.

    Rimuove la maschera column per questo column, se presente. Le future richieste provenienti da questo column riceveranno il valuesoriginale del column.

  • 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 al column. È necessario disporre dell'autorizzazione APPLY TAG per aggiungere tag al column.

    • tag_name

      Valore letterale STRING. Il tag_name deve essere univoco all'interno del table o column.

    • 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

    Remove tag dal column. È necessario disporre dell'autorizzazione APPLY TAG per remove tag da column.

    • tag_name

      Valore letterale STRING. Il tag_name deve essere univoco all'interno del table o column.

DROP COLUMN clausola

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 uno o più campi columns o in un tableDelta Lake.

Quando si rilascia un column o un campo, è necessario eliminare i vincoli di verifica dipendenti e i columnsgenerati.

Per i requisiti, vedere Rinominare ed eliminare columns con il mapping di Delta Lake column.

Sintassi

DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )

Parameters

  • IF EXISTS

    Quando si specifica IF EXISTS, Azure Databricks ignora un tentativo di eliminare columns che non esistono. In caso contrario, l'eliminazione di columns inesistente causerà un errore.

  • column_identifier

    Nome del columnesistente.

  • 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 10.4 LTS e versioni successive

Rinomina un column o un campo in un Delta Lake table abilitato per la mappatura column.

Quando si rinomina un column o un campo, è necessario modificare i vincoli di controllo dipendenti e gli columnsgenerati. Tutte le chiavi primarie e le chiavi esterne che usano il column verranno eliminate. Nel caso di chiavi esterne, è necessario possedere il table in cui è definita la chiave esterna.

Per i requisiti e come abilitare il mapping di column, vedere Rinominare ed eliminare columns con il mapping di Delta Lake column.

Sintassi

RENAME COLUMN { column_identifier TO to_column_identifier|
                field_name TO to_field_identifier }

Parameters

Esempi

Vedi ALTER TABLE esempi.