ALTER TABLE Clause COLUMN
S’applique à : Databricks SQL Databricks Runtime
Ajoute, modifie ou supprime une colonne dans une table ou un champ dans une colonne d’une table Delta Lake.
Autorisations requises
Si vous utilisez le catalogue Unity, vous devez avoir MODIFY
l’autorisation de :
- ALTER COLUMN
- AJOUTER UNE COLONNE
- ANNULER LA COLONNE
Toutes les autres opérations nécessitent la propriété de la table.
Syntaxe
ALTER TABLE table_name
{ ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause }
AJOUTER une clause COLUMN
Cette clause n’est pas prise en charge pour les sources de données JDBC
.
Ajoute une ou plusieurs colonnes à la table, ou des champs à des colonnes existantes dans une table Delta Lake.
Remarque
Lorsque vous ajoutez une colonne à une table Delta existante, vous ne pouvez pas définir une valeur DEFAULT
. Toutes les colonnes ajoutées aux tables Delta sont traitées comme NULL
pour les lignes existantes. Après avoir ajouté une colonne, vous pouvez éventuellement lui définir une valeur par défaut, mais elle est appliquée uniquement pour les nouvelles lignes insérées dans la table. Utilisez la syntaxe suivante :
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_expression
Syntaxe
{ ADD [ COLUMN | COLUMNS ]
( { { column_identifier | field_name } data_type
[ DEFAULT clause ] [ COMMENT comment ] [ FIRST | AFTER identifier ]
[ MASK clause ] } [, ...] ) }
Paramètres
-
Le nom de la colonne à ajouter. Ce nom doit être unique dans la table.
Sauf si
FIRST
ouAFTER name
sont spécifiés, la colonne ou le champ est ajouté à la fin. -
Nom qualifié complet du champ à ajouter à une colonne existante. Tous les composants du chemin d’accès au champ imbriqué doivent exister et le nom de champ lui-même doit être unique.
DEFAULT default_expression
S’applique à : Databricks SQL Databricks Runtime 11.3 LTS et ultérieur
Définit une valeur
DEFAULT
pour la colonne qui est utilisée surINSERT
etMERGE ... INSERT
lorsque la colonne n’est pas spécifiée.Si aucune valeur par défaut n’est spécifiée,
DEFAULT NULL
est implicite pour les colonnes pouvant accepter la valeur Null.default_expression
peut être composé de littéraux ainsi que de fonctions SQL intégrées ou d’opérateurs, à l’exception de :- Fonctions d’agrégation
- Fonctions de fenêtre analytique
- Les fonctions de classement de fenêtre
- Fonctions du générateur de valeur de table
default_expression
ne doit pas contenir de sous-requête.DEFAULT
est pris en charge pour les sourcesCSV
,JSON
,PARQUET
etORC
.-
Spécifie le type de données de la colonne ou du champ. Tous les types de données pris en charge par les Azure Databricks ne sont pas pris en charge par toutes les sources de données.
COMMENT comment
Littéral
STRING
facultatif qui décrit la colonne ou le champ ajouté.Si vous souhaitez ajouter un commentaire généré par l'IA pour une table ou une colonne de table managée par Unity Catalog, consultez Ajouter des commentaires générés par l'IA aux objets Unity Catalog.
FIRST
Si elle est spécifiée, la colonne est ajoutée en tant que première colonne de la table, ou le champ est ajouté comme premier champ dans le struct conteneur.
AFTER
identifierSi il ou elle est spécifié, le champ ou la colonne est ajouté immédiatement après le champ ou la colonne
identifier
.-
S’applique à : Databricks SQL Databricks Runtime 12.2 LTS et versions ultérieures Unity Catalog uniquement
Important
Cette fonctionnalité est disponible en préversion publique.
Permet d’ajouter une fonction de masque de colonne pour anonymiser les données sensibles. Toutes les requêtes ultérieures de cette colonne recevront le résultat de l’évaluation de cette fonction sur la colonne à la place de la valeur d’origine de la colonne. Cela peut être utile à des fins de contrôle d’accès plus précis, où la fonction peut inspecter l’identité ou l’appartenance à un groupe de l’utilisateur appelant afin de décider s’il convient de modifier la valeur.
Clause ALTER COLUMN
S’applique à : Databricks SQL Databricks Runtime
Modifie une propriété ou l’emplacement d’une colonne.
Syntaxe
{ { 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 } }
Paramètres
-
Nom de la colonne à modifier.
-
Nom qualifié complet du champ à modifier. Tous les composants du chemin d’accès au champ imbriqué doivent exister.
COMMENT comment
Modifie la description de la colonne
column_name
.comment
doit être un littéralSTRING
.FIRST
ouAFTER
identificateurDéplace la colonne de sa position actuelle vers l’avant (
FIRST
) ou immédiatementAFTER
(après) l’identifier
(identificateur). Cette clause est prise en charge uniquement sitable_name
est une table Delta.TYPE
data_typeS’applique à : Databricks SQL Databricks Runtime 15.2 et versions ultérieures
Change le type de données de la colonne
column_name
.Cette clause est prise en charge uniquement si
table_name
est une table Delta.Les changements de type suivants sont pris en charge pour toutes les tables Delta :
- Augmentation de la taille d’une colonne
VARCHAR
, par exemple deVARCHAR(5)
àVARCHAR(10)
- Changement du type d’une colonne
CHAR
enVARCHAR
, par exemple deCHAR(5)
àVARCHAR(5)
- Changement du type d’une colonne
CHAR
ouVARCHAR
enSTRING
, par exemple deVARCHAR(10)
àSTRING
.
Les changements de type suivants sont pris en charge pour les tables Delta quand
delta.enableTypeWidening
a la valeurtrue
:Important
Cette fonctionnalité est en préversion publique dans Databricks Runtime 15.2 et versions ultérieures.
Type de source Types plus larges pris en charge BYTE
SHORT
,INT
,BIGINT
,DECIMAL
,DOUBLE
SHORT
INT
,BIGINT
,DECIMAL
,DOUBLE
INT
BIGINT
,DECIMAL
,DOUBLE
BIGINT
DECIMAL
,DOUBLE
FLOAT
DOUBLE
DECIMAL
DECIMAL
avec une plus grande précision et une échelleDATE
TIMESTAMP_NTZ
Pour plus d’informations sur l’élargissement de type, consultez Élargissement du type.
- Augmentation de la taille d’une colonne
SET NOT NULL
ouDROP NOT NULL
Modifie le domaine des valeurs de colonne valides pour exclure les valeurs null
SET NOT NULL
ou inclure des valeurs nullDROP NOT NULL
. Cette clause est uniquement prise en charge pour les tables Delta Lake. Delta Lake garantit que la contrainte est valide pour toutes les données existantes et nouvelles.SYNC IDENTITY
S’applique à : Databricks SQL Databricks Runtime 10.4 LTS et ultérieur
Synchronisez les métadonnées d’une colonne d’identité avec les données réelles. Lorsque vous écrivez vos propres valeurs dans une colonne d’identité, il est possible qu’elles ne soient pas conformes aux métadonnées. Cette option évalue l’état et met à jour les métadonnées pour qu’elles soient cohérentes avec les données réelles. Après cette commande, la valeur d’identité assignée automatiquement suivante démarre à partir de
start + (n + 1) * step
oùn
est la plus petite valeur qui satisfait àstart + n * step >= max()
(pour une étape positive).Cette option est uniquement prise en charge pour les colonnes d’identité sur les tables Delta Lake.
DROP DEFAULT
S’applique à : Databricks SQL Databricks Runtime 11.3 LTS et ultérieur
Supprime l’expression par défaut de la colonne. Pour les colonnes pouvant accepter la valeur Null, cela équivaut à
SET DEFAULT NULL
. Pour les colonnes définies avecNOT NULL
, vous devez fournir une valeur sur chacune des futures opérationsINSERT
SET DEFAULT default_expression
S’applique à : Databricks SQL Databricks Runtime 11.3 LTS et ultérieur
Définit une valeur
DEFAULT
pour la colonne qui est utilisée surINSERT
etMERGE ... INSERT
lorsque la colonne n’est pas spécifiée.Si aucune valeur par défaut n’est spécifiée,
DEFAULT NULL
est implicite pour les colonnes pouvant accepter la valeur Null.default_expression
peut être composé de littéraux, de fonctions SQL intégrées ou d’opérateurs, à l’exception de :- Fonctions d’agrégation
- Fonctions de fenêtre analytique
- Les fonctions de classement de fenêtre
- Fonctions du générateur de valeur de table
default_expression
ne doit pas contenir de sous-requête.DEFAULT
est pris en charge pour les sourcesCSV
,JSON
,ORC
etPARQUET
.Lorsque vous définissez la valeur par défaut d’une colonne nouvellement ajoutée, cette valeur s’applique à toutes les lignes préexistantes. Si la valeur par défaut inclut une fonction non déterministe telle que
rand
oucurrent_timestamp
, elle est calculée lors de l’exécution deALTER TABLE
et appliquée en tant que constante aux lignes préexistantes. Pour les lignes nouvellement insérées, l’expression par défaut s’exécute une fois par ligne.Lorsque vous définissez une valeur par défaut à l’aide de
ALTER COLUMN
, les lignes existantes ne sont pas affectées par cette modification.SET
Clause MASKS’applique à : Databricks SQL Databricks Runtime 12.2 LTS et versions ultérieures Unity Catalog uniquement
Important
Cette fonctionnalité est disponible en préversion publique.
Permet d’ajouter une fonction de masque de colonne pour anonymiser les données sensibles. Toutes les requêtes ultérieures de cette colonne recevront le résultat de l’évaluation de cette fonction sur la colonne à la place de la valeur d’origine de la colonne. Cela peut être utile à des fins de contrôle d’accès plus précis, où la fonction peut inspecter l’identité ou l’appartenance à un groupe de l’utilisateur appelant afin de décider s’il convient de modifier la valeur.
DROP MASK
S’applique à : Unity Catalog uniquement
Important
Cette fonctionnalité est disponible en préversion publique.
Permet de supprimer le masque de colonne pour celle-si, le cas échéant. Les requêtes futures de cette colonne recevront les valeurs d’origine de la colonne.
SET TAGS ( { tag_name = tag_value } [, ...] )
S’applique à : Databricks SQL Databricks Runtime 13.3 LTS et versions ultérieures
Appliquer des balises à la colonne. Vous devez disposer d’une autorisation
APPLY TAG
pour ajouter des balises à la colonne.tag_name
Un
STRING
littéral. Letag_name
nom doit être unique dans la table ou la colonne.tag_value
Un
STRING
littéral.
UNSET TAGS ( tag_name [, ...] )
S’applique à : Databricks SQL Databricks Runtime 13.3 LTS et versions ultérieures
Supprimer des balises de le colonne. Vous devez disposer d’une autorisation
APPLY TAG
pour supprimer des balises de la colonne.tag_name
Un
STRING
littéral. Letag_name
nom doit être unique dans la table ou la colonne.
ANNULER une clause COLUMN
Important
Cette fonctionnalité est disponible en préversion publique.
S’applique à : Databricks SQL Databricks Runtime 11.3 LTS et ultérieur
Déposez une ou plusieurs colonnes ou champs dans une table Delta Lake.
Quand vous supprimez une colonne ou un champ, vous devez aussi supprimer les contraintes de validation et les colonnes générées dépendantes.
Pour connaître la configuration requise, consultez Renommage et suppression des colonnes avec le mappage de colonnes Delta Lake.
Syntaxe
DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )
Paramètres
IF EXISTS
Lorsque vous spécifiez
IF EXISTS
, Azure Databricks ignore une tentative de suppression de colonnes qui n’existent pas. Dans le cas contraire, déposer des colonnes non existantes provoque une erreur.-
Nom de la colonne existante.
-
Nom complet d’un champ existant.
RENOMMER une clause COLUMN
Important
Cette fonctionnalité est disponible en préversion publique.
S’applique à : Databricks SQL Databricks Runtime 11.3 LTS et ultérieur
Renomme une colonne ou un champ dans une table Delta Lake.
Lorsque vous renommez une colonne ou un champ, vous devez également modifier les contraintes de validation dépendantes et les colonnes générées. Toutes les clés primaires et les clés étrangères utilisant la colonne sont supprimées. Dans le cas de clés étrangères, vous devez être propriétaire de la table sur laquelle la clé étrangère est définie.
Pour connaître la configuration requise, consultez Renommage et suppression des colonnes avec le mappage de colonnes Delta Lake.
Syntaxe
RENAME COLUMN { column_identifier TO to_column_identifier|
field_name TO to_field_identifier }
Paramètres
-
Nom existant d’une colonne.
-
Nouvel identificateur de colonne. L’identificateur doit être unique dans la table.
-
Nom complet existant d’un champ.
-
Nouvel identificateur de champ. L’identificateur doit être unique au sein de la structure locale.
Exemples
Consulter les exemples d’ALTER TABLE.