Compartir a través de


ALTER TABLE Cláusula COLUMN

Se aplica a: casilla marcada como Sí Databricks SQL casilla marcada como sí Databricks Runtime

Agrega, modifica o quita una columna de una tabla o un campo de una columna de una tabla de Delta Lake.

Permisos necesarios

Si usa Unity Catalog, debe tener el permiso MODIFY para:

  • ALTER COLUMN
  • ADD COLUMN
  • DROP COLUMN

Todas las demás operaciones requieren la titularidad de la tabla.

Sintaxis

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

Cláusula ADD COLUMN

Esta cláusula no es compatible con los orígenes de datos JDBC.

Agrega una o varias columnas a la tabla o campos a las columnas existentes en una tabla de Delta Lake.

Nota:

Al agregar una columna a una tabla Delta existente, no se puede definir un valor de DEFAULT. Todas las columnas agregadas a las tablas Delta se tratan como NULL para las filas existentes. Después de agregar una columna, puede definir opcionalmente un valor predeterminado para la columna, pero solo se aplica a las nuevas filas insertadas en la tabla. Use la sintaxis siguiente:

ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_expression

Sintaxis

{ ADD [ COLUMN | COLUMNS ]
  ( { { column_identifier | field_name } data_type
      [ DEFAULT clause ] [ COMMENT comment ] [ FIRST | AFTER identifier ]
      [ MASK clause ] } [, ...] ) }

Parámetros

  • column_identifier

    Nombre de la columna que se va a agregar. El nombre debe ser único en la tabla.

    A menos que se especifiquen FIRST o AFTER name, la columna o el campo se anexarán al final.

  • field_name

    Nombre completo del campo que se va a agregar a una columna existente. Todos los componentes de la ruta de acceso al campo anidado deben existir y el propio nombre del campo debe ser único.

  • DEFAULT default_expression

    Se aplica a: casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 11.3 LTS y versiones posteriores

    Define un valor DEFAULT para la columna que se usa en INSERT y MERGE ... INSERT cuando no se especifica la columna.

    Si no se especifica ningún valor predeterminado, DEFAULT NULL estará implícito para las columnas que admiten un valor NULL.

    default_expression puede estar compuesto de literales y funciones u operadores de SQL integrados, excepto:

    default_expression tampoco debe contener ninguna subconsulta.

    DEFAULT es compatible con orígenes CSV, JSON, PARQUET y ORC.

  • data_type

    Especifica el tipo de datos de la columna o el campo. No todos los tipos de datos que admite Azure Databricks son compatibles con todos los orígenes de datos.

  • COMMENT comment

    Literal STRING opcional que describe la columna o el campo agregados.

    Si quiere agregar un comentario generado por IA para una tabla o columna de tabla administrada por el catálogo de Unity, consulte Adición de comentarios generados por IA a objetos de catálogo de Unity.

  • FIRST

    Si se especifica, la columna se agregará como primera columna en la tabla, o el campo se agregará como primer campo en la estructura que lo contiene.

  • AFTERidentifier

    Si se especifica, la columna o el campo se agregarán inmediatamente después del campo o la columna identifier.

  • Cláusula MASK

    Se aplica a: casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 12.2 LTS y versiones posteriores casilla marcada como Sí solo Unity Catalog

    Importante

    Esta característica está en versión preliminar pública.

    Agrega una función de máscara de columna para anonimizar datos confidenciales. Todas las consultas siguientes desde esa columna recibirán el resultado de evaluar esa función sobre la columna en lugar del valor original de la columna. Esto puede ser útil para fines de control de acceso específicos en los que la función puede inspeccionar la identidad o las pertenencias a grupos del usuario que realiza la invocación para decidir si expurga el valor.

Cláusula ALTER COLUMN

Se aplica a: casilla marcada como Sí Databricks SQL casilla marcada como sí Databricks Runtime

Cambia una propiedad o la ubicación de una columna.

Sintaxis

{ { 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 } }

Parámetros

  • column_identifier

    Nombre de la columna que se va a modificar.

  • field_name

    Nombre completo del campo que se va a modificar. Todos los componentes de la ruta de acceso al campo anidado deben existir.

  • COMMENT comment

    Cambia la descripción de la columna column_name. comment debe ser un literal de STRING.

  • FIRST o AFTERidentificador

    Mueve la columna desde su posición actual al frente (FIRST) o inmediatamente AFTER del identifier. Esta cláusula solo se admite si table_name es una tabla Delta.

  • TYPEdata_type

    Se aplica a casilla marcada como Sí Databricks SQLcasilla marcada como Sí, Databricks Runtime 15.2 y versiones posteriores.

    Cambia el tipo de datos de la columna column_name.

    Esta cláusula solo se admite si table_name es una tabla Delta.

    Se admiten los siguientes cambios de tipo para todas las tablas Delta:

    • Aumentar el tamaño de una columna VARCHAR; por ejemplo, de VARCHAR(5) a VARCHAR(10).
    • Cambiar el tipo de una columna CHAR a un VARCHAR; por ejemplo, de CHAR(5) a VARCHAR(5).
    • Cambiar el tipo de una columna CHAR o VARCHAR a STRING; por ejemplo, de VARCHAR(10) a STRING.

    Se admiten los siguientes cambios de tipo para las tablas Delta con delta.enableTypeWidening establecido en true:

    Importante

    Esta característica está en versión preliminar pública en Databricks Runtime 15.2 y versiones posteriores.

    Tipo de origen Tipos más amplios admitidos
    BYTE SHORT, INT, BIGINT, , DECIMAL, DOUBLE
    SHORT INT, BIGINT, , DECIMAL, DOUBLE
    INT BIGINT, , DECIMAL, DOUBLE
    BIGINT DECIMAL, DOUBLE
    FLOAT DOUBLE
    DECIMAL DECIMAL con mayor precisión y escala
    DATE TIMESTAMP_NTZ

    Para obtener información más detallada sobre la ampliación de tipos, vea Tipo de ampliación.

  • SET NOT NULL o DROP NOT NULL

    Cambia el dominio de los valores de columna válidos para excluir valores NULL SET NOT NULL, o incluir valores NULL DROP NOT NULL. Esta opción solo se admite para tablas de Delta Lake. Delta Lake garantizará que la restricción sea válida para todos los datos nuevos y existentes.

  • SYNC IDENTITY

    Se aplica a: casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 10.4 LTS y versiones posteriores

    Sincronice los metadatos de una columna de identidad con los datos reales. Si escribe valores propios en una columna de identidad, es posible que no cumpla los requisitos de los metadatos. Esta opción evalúa el estado de los metadatos y los actualiza para que sean coherentes con los datos reales. Después de este comando, el siguiente valor de identidad asignado automáticamente se iniciará a partir de start + (n + 1) * step, donde n es el menor valor que cumple los requisitos de start + n * step >= max() (para un paso positivo).

    Esta opción solo se admite para las columnas de identidad en las tablas de Delta Lake.

  • DROP DEFAULT

    Se aplica a: casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 11.3 LTS y versiones posteriores

    Quita la expresión predeterminada de la columna. En el caso de las columnas que admiten un valor NULL, equivale a SET DEFAULT NULL. En el caso de las columnas que se definen con NOT NULL, debe proporcionar un valor en cada operación futura INSERT

  • SET DEFAULT default_expression

    Se aplica a: casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 11.3 LTS y versiones posteriores

    Define un valor DEFAULT para la columna que se usa en INSERT y MERGE ... INSERT cuando no se especifica la columna.

    Si no se especifica ningún valor predeterminado, DEFAULT NULL estará implícito para las columnas que admiten un valor NULL.

    default_expression puede estar compuesto de literales y funciones u operadores de SQL integrados, excepto:

    default_expression tampoco debe contener ninguna subconsulta.

    DEFAULT es compatible con orígenes CSV, JSON, ORC y PARQUET.

    Cuando se define el valor predeterminado para una columna recién agregada, este se aplica a todas las filas preexistentes. Si el valor predeterminado incluye una función no determinista, como rand o current_timestamp, dicho valor se calculará una vez cuando se ejecute ALTER TABLE y se aplicará como una constante a las filas preexistentes. Para las filas recién insertadas, la expresión predeterminada se ejecuta una vez por fila.

    Cuando se establece un valor predeterminado mediante ALTER COLUMN, no afecta a las filas existentes.

  • SETCláusula MASK

    Se aplica a: casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 12.2 LTS y versiones posteriores casilla marcada como Sí solo Unity Catalog

    Importante

    Esta característica está en versión preliminar pública.

    Agrega una función de máscara de columna para anonimizar datos confidenciales. Todas las consultas siguientes desde esa columna recibirán el resultado de evaluar esa función sobre la columna en lugar del valor original de la columna. Esto puede ser útil para fines de control de acceso específicos en los que la función puede inspeccionar la identidad o las pertenencias a grupos del usuario que realiza la invocación para decidir si expurga el valor.

  • DROP MASK

    Se aplica a: casilla marcada como sí solo Unity Catalog

    Importante

    Esta característica está en versión preliminar pública.

    Quita la máscara de columna de esta columna, si existe. Las consultas futuras de esta columna recibirán los valores originales de la columna.

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

    Se aplica a: casilla marcada como sí Databricks SQL casilla marcada como sí Databricks Runtime 13.3 LTS y versiones posteriores

    Aplique etiquetas al catálogo. Debe tener el permiso APPLY TAG para agregar etiquetas a la columna.

    • tag_name

      Un literal de STRING. El tag_name debe ser único en la tabla o columna.

    • tag_value

      Un literal de STRING.

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

    Se aplica a: casilla marcada como sí Databricks SQL casilla marcada como sí Databricks Runtime 13.3 LTS y versiones posteriores

    Elimine las etiquetas de la columna. Debe tener el permiso APPLY TAG para quitar etiquetas de la columna.

    • tag_name

      Un literal de STRING. El tag_name debe ser único en la tabla o columna.

Cláusula DROP COLUMN

Importante

Esta característica está en versión preliminar pública.

Se aplica a: casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 11.3 LTS y versiones posteriores

Elimine una o varias columnas o campos en una tabla Delta Lake.

Al eliminar una columna o un campo, debe eliminar las restricciones de comprobación de los elementos dependientes y las columnas generadas.

Para ver los requisitos, consulte Cambio de nombre y eliminación de columnas con la asignación de columnas de Delta Lake.

Sintaxis

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

Parámetros

  • IF EXISTS

    Al especificar IF EXISTS, Azure Databricks omite el intento de eliminar columnas que no existen. De lo contrario, la eliminación de columnas no existentes producirá un error.

  • column_identifier

    Nombre de la columna existente.

  • field_name

    Nombre completo de un campo existente.

Cláusula RENAME COLUMN

Importante

Esta característica está en versión preliminar pública.

Se aplica a: casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 10.4 LTS y versiones posteriores

Cambia el nombre de una columna o campo de una tabla de Delta Lake habilitada para la asignación de columnas.

Al cambiar el nombre de una columna o un campo, también debe cambiar las restricciones check de los elementos dependientes y las columnas generadas. Se eliminarán las claves principales y las claves externas que usen la columna. En el caso de las claves externas, debe ser el propietario de la tabla en la que se ha definido la clave externa.

Para conocer los requisitos y cómo habilitar la asignación de columnas, consulte Cambio de nombre y eliminación de columnas con asignación de columnas de Delta Lake.

Sintaxis

RENAME COLUMN { column_identifier TO to_column_identifier|
                field_name TO to_field_identifier }

Parámetros

  • column_identifier

    El nombre existente de la columna.

  • to_column_identifier

    El nuevo identificador de columna. El identificador debe ser único dentro de la tabla.

  • field_name

    El nombre completo existente de un campo.

  • to_field_identifier

    El nuevo identificador de campo. El identificador debe ser único dentro de la estructura local.

Ejemplos

Consulte los ejemplos de ALTER TABLE.