Partage via


ALTER TABLE Clause COLUMN

S’applique à : case marquée oui Databricks SQL oui coché 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

  • column_identifier

    Le nom de la colonne à ajouter. Ce nom doit être unique dans la table.

    Sauf si FIRST ou AFTER name sont spécifiés, la colonne ou le champ est ajouté à la fin.

  • field_name

    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 à : coche marquée oui Databricks SQL coche marquée oui Databricks Runtime 11.3 LTS et ultérieur

    Définit une valeur DEFAULT pour la colonne qui est utilisée sur INSERT et MERGE ... 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 :

    default_expression ne doit pas contenir de sous-requête.

    DEFAULT est pris en charge pour les sources CSV, JSON, PARQUET et ORC.

  • data_type

    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.

  • AFTERidentifier

    Si il ou elle est spécifié, le champ ou la colonne est ajouté immédiatement après le champ ou la colonne identifier.

  • Clause MASK

    S’applique à : coche marquée oui Databricks SQL coche marquée oui Databricks Runtime 12.2 LTS et versions ultérieures case marquée oui 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 à : case marquée oui Databricks SQL oui coché 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

  • column_identifier

    Nom de la colonne à modifier.

  • field_name

    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éral STRING.

  • FIRST ou AFTERidentificateur

    Déplace la colonne de sa position actuelle vers l’avant (FIRST) ou immédiatement AFTER (après) l’identifier (identificateur). Cette clause est prise en charge uniquement si table_name est une table Delta.

  • TYPEdata_type

    S’applique à : coche pour oui Databricks SQL coche marquée oui 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 de VARCHAR(5) à VARCHAR(10)
    • Changement du type d’une colonne CHAR en VARCHAR, par exemple de CHAR(5) à VARCHAR(5)
    • Changement du type d’une colonne CHAR ou VARCHAR en STRING, par exemple de VARCHAR(10) à STRING.

    Les changements de type suivants sont pris en charge pour les tables Delta quand delta.enableTypeWidening a la valeur true :

    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 échelle
    DATE TIMESTAMP_NTZ

    Pour plus d’informations sur l’élargissement de type, consultez Élargissement du type.

  • SET NOT NULL ou DROP NOT NULL

    Modifie le domaine des valeurs de colonne valides pour exclure les valeurs null SET NOT NULL ou inclure des valeurs null DROP 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 à : coche marquée oui Databricks SQL coche marquée oui 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) * stepn 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 à : coche marquée oui Databricks SQL coche marquée oui 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 avec NOT NULL, vous devez fournir une valeur sur chacune des futures opérations INSERT

  • SET DEFAULT default_expression

    S’applique à : coche marquée oui Databricks SQL coche marquée oui Databricks Runtime 11.3 LTS et ultérieur

    Définit une valeur DEFAULT pour la colonne qui est utilisée sur INSERT et MERGE ... 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 :

    default_expression ne doit pas contenir de sous-requête.

    DEFAULT est pris en charge pour les sources CSV, JSON, ORC et PARQUET.

    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 ou current_timestamp, elle est calculée lors de l’exécution de ALTER 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.

  • SETClause MASK

    S’applique à : coche marquée oui Databricks SQL coche marquée oui Databricks Runtime 12.2 LTS et versions ultérieures case marquée oui 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 à : coche marquée oui 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 à : coche marquée oui Databricks SQL oui coché 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. Le tag_name nom doit être unique dans la table ou la colonne.

    • tag_value

      Un STRING littéral.

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

    S’applique à : coche marquée oui Databricks SQL oui coché 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. Le tag_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 à : coche marquée oui Databricks SQL coche marquée oui 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.

  • column_identifier

    Nom de la colonne existante.

  • field_name

    Nom complet d’un champ existant.

RENOMMER une clause COLUMN

Important

Cette fonctionnalité est disponible en préversion publique.

S’applique à : coche marquée oui Databricks SQL coche marquée oui 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

Exemples

Consulter les exemples d’ALTER TABLE.