Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
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 COLUMNADD COLUMNDROP COLUMN
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 COLUMN clause
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
[ COLLATE collation_name ]
[ 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
FIRSTouAFTER namesont 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.
Pour ajouter des champs à des structs imbriqués dans
ARRAYouMAPdes types, utilisez les noms spéciaux suivants :-
ELEMENTpour accéder à unARRAYélément. -
KEYpour accéder à uneMAPtouche. -
VALUEpour accéder à uneMAPvaleur.
Par exemple :
phonenumbers.element.countrycodeajoute le champcountrycodeà chaque élément duphonenumberstableau. -
DEFAULT default_expressionS’applique à :
Databricks SQL
Databricks Runtime 11.3 LTS et ultérieurDéfinit une valeur
DEFAULTpour la colonne qui est utilisée surINSERTetMERGE ... INSERTlorsque la colonne n’est pas spécifiée. Tous les littérauxSTRINGet fonctionsSTRINGdans l’expression par défaut utiliseront l’interclassementUTF8_BINARY.Si aucune valeur par défaut n’est spécifiée,
DEFAULT NULLest implicite pour les colonnes pouvant accepter la valeur Null.default_expressionpeut ê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_expressionne doit pas contenir de sous-requête.DEFAULTest pris en charge pour les sourcesCSV,JSON,PARQUETetORC.-
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.
COLLATEnom_de_collationPour
data_typeSTRINGspécifie éventuellement le classement à utiliser avec la colonne ou le champ. S’il n’est pas spécifié, le classementUTF8_BINARYs’applique.COMMENT commentLittéral
STRINGfacultatif 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.
FIRSTSi 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.
AFTERidentificateurSi 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 uniquementImportant
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 suivantes 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.
ALTER COLUMN , clause
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 }
[, ... ]
Avant Databricks Runtime 16.3, la clause ne prend pas en charge la modification de plusieurs colonnes dans une seule clause.
{ ALTER | CHANGE } [ COLUMN ]
{ column_identifier | field_name }
{ SET { MASK clause } |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause }
Paramètres
-
Nom de la colonne à modifier.
Si un identificateur de colonne est référencé plusieurs fois, Azure Databricks génère NOT_SUPPORTED_CHANGE_SAME_COLUMN.
-
Nom qualifié complet du champ à modifier. Tous les composants du chemin d’accès au champ imbriqué doivent exister.
Si un nom de champ est référencé plusieurs fois, Azure Databricks déclenche NOT_SUPPORTED_CHANGE_SAME_COLUMN.
COMMENT commentModifie la description de la colonne
column_name.commentdoit être un littéralSTRING.FIRSTouAFTERidentificateurDé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_nameest une table Delta.TYPEtype_de_donnéesS’applique à :
Databricks SQL
Databricks Runtime 15.2 et versions ultérieuresChange le type de données de la colonne
column_name.Cette clause est prise en charge uniquement si
table_nameest 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
CHARenVARCHAR, par exemple deCHAR(5)àVARCHAR(5) - Changement du type d’une colonne
CHARouVARCHARenSTRING, par exemple deVARCHAR(10)àSTRING.
Les changements de type suivants sont pris en charge pour les tables Delta quand
delta.enableTypeWideninga 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 BYTESHORT, ,INTBIGINT, ,DECIMALDOUBLESHORTINT, ,BIGINTDECIMAL, ,DOUBLEINTBIGINT, ,DECIMALDOUBLEBIGINTDECIMAL,DOUBLEFLOATDOUBLEDECIMALDECIMALavec une plus grande précision et une échelleDATETIMESTAMP_NTZPour plus d’informations sur l’élargissement de type, consultez Élargissement du type.
- Augmentation de la taille d’une colonne
SET NOT NULLouDROP NOT NULLModifie le domaine des valeurs de colonne valides pour exclure les valeurs null
SET NOT NULLou 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 IDENTITYS’applique à :
Databricks SQL
Databricks Runtime 10.4 LTS et ultérieurSynchronisez 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) * stepoùnest 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 DEFAULTS’applique à :
Databricks SQL
Databricks Runtime 11.3 LTS et ultérieurSupprime 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érationsINSERTSET DEFAULT default_expressionS’applique à :
Databricks SQL
Databricks Runtime 11.3 LTS et ultérieurDéfinit une valeur
DEFAULTpour la colonne qui est utilisée surINSERTetMERGE ... INSERTlorsque la colonne n’est pas spécifiée.Si aucune valeur par défaut n’est spécifiée,
DEFAULT NULLest implicite pour les colonnes pouvant accepter la valeur Null.default_expressionpeut ê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_expressionne doit pas contenir de sous-requête.DEFAULTest pris en charge pour les sourcesCSV,JSON,ORCetPARQUET.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
randoucurrent_timestamp, elle est calculée lors de l’exécution deALTER TABLEet 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.SETClause MASKS’applique à :
Databricks SQL
Databricks Runtime 12.2 LTS et versions ultérieures
Unity Catalog uniquementImportant
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 suivantes 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 MASKS’applique à :
Unity Catalog uniquementImportant
Cette fonctionnalité est disponible en préversion publique.
Permet de supprimer le masque de colonne pour celle-si, le cas échéant. Les futures requêtes 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érieuresAppliquer des balises à la colonne. Vous devez disposer d’une autorisation
APPLY TAGpour ajouter des balises à la colonne.tag_name
Un
STRINGlittéral. Letag_namenom doit être unique dans la table ou la colonne.tag_value
Un
STRINGlittéral.
UNSET TAGS ( tag_name [, ...] )S’applique à :
Databricks SQL
Databricks Runtime 13.3 LTS et versions ultérieuresSupprimer des balises de le colonne. Vous devez disposer d’une autorisation
APPLY TAGpour supprimer des balises de la colonne.tag_name
Un
STRINGlittéral. Letag_namenom doit être unique dans la table ou la colonne.
DROP COLUMN , clause
Important
Cette fonctionnalité est disponible en préversion publique.
S’applique à :
Databricks SQL
Databricks Runtime 11.3 LTS et ultérieur
Supprimez une ou plusieurs colonnes ou champs dans une relation.
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 EXISTSLorsque 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 la clause COLUMN
Important
Cette fonctionnalité est disponible en préversion publique.
S’applique à :
Databricks SQL
Databricks Runtime 10.4 LTS et ultérieur
Renomme une colonne ou un champ dans une table Delta Lake activée pour le mappage de colonnes.
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 les exigences et comment activer le mappage de colonnes, consultez Renommer et supprimer 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
Voir ALTER TABLE exemples.