ALTER TABLE Cláusula COLUMN
Se aplica a: Databricks SQL 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
-
Nombre de la columna que se va a agregar. El nombre debe ser único en la tabla.
A menos que se especifiquen
FIRST
oAFTER name
, la columna o el campo se anexarán al final. -
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: Databricks SQL Databricks Runtime 11.3 LTS y versiones posteriores
Define un valor
DEFAULT
para la columna que se usa enINSERT
yMERGE ... 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:- Funciones de agregado
- Funciones de ventana analítica
- Funciones de ventana de categoría
- Funciones de generador con valores de tabla
default_expression
tampoco debe contener ninguna subconsulta.DEFAULT
es compatible con orígenesCSV
,JSON
,PARQUET
yORC
.-
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.
AFTER
identifierSi se especifica, la columna o el campo se agregarán inmediatamente después del campo o la columna
identifier
.-
Se aplica a: Databricks SQL Databricks Runtime 12.2 LTS y versiones posteriores 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: Databricks SQL 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
-
Nombre de la columna que se va a modificar.
-
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 deSTRING
.FIRST
oAFTER
identificadorMueve la columna desde su posición actual al frente (
FIRST
) o inmediatamenteAFTER
delidentifier
. Esta cláusula solo se admite sitable_name
es una tabla Delta.TYPE
data_typeSe aplica a Databricks SQL, 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, deVARCHAR(5)
aVARCHAR(10)
. - Cambiar el tipo de una columna
CHAR
a unVARCHAR
; por ejemplo, deCHAR(5)
aVARCHAR(5)
. - Cambiar el tipo de una columna
CHAR
oVARCHAR
aSTRING
; por ejemplo, deVARCHAR(10)
aSTRING
.
Se admiten los siguientes cambios de tipo para las tablas Delta con
delta.enableTypeWidening
establecido entrue
: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 escalaDATE
TIMESTAMP_NTZ
Para obtener información más detallada sobre la ampliación de tipos, vea Tipo de ampliación.
- Aumentar el tamaño de una columna
SET NOT NULL
oDROP NOT NULL
Cambia el dominio de los valores de columna válidos para excluir valores NULL
SET NOT NULL
, o incluir valores NULLDROP 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: Databricks SQL 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
, donden
es el menor valor que cumple los requisitos destart + 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: Databricks SQL 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 conNOT NULL
, debe proporcionar un valor en cada operación futuraINSERT
SET DEFAULT default_expression
Se aplica a: Databricks SQL Databricks Runtime 11.3 LTS y versiones posteriores
Define un valor
DEFAULT
para la columna que se usa enINSERT
yMERGE ... 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:- Funciones de agregado
- Funciones de ventana analítica
- Funciones de ventana de categoría
- Funciones de generador con valores de tabla
default_expression
tampoco debe contener ninguna subconsulta.DEFAULT
es compatible con orígenesCSV
,JSON
,ORC
yPARQUET
.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
ocurrent_timestamp
, dicho valor se calculará una vez cuando se ejecuteALTER 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.-
Se aplica a: Databricks SQL Databricks Runtime 12.2 LTS y versiones posteriores 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: 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: Databricks SQL 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
. Eltag_name
debe ser único en la tabla o columna.tag_value
Un literal de
STRING
.
UNSET TAGS ( tag_name [, ...] )
Se aplica a: Databricks SQL 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
. Eltag_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: Databricks SQL 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.-
Nombre de la columna existente.
-
Nombre completo de un campo existente.
Cláusula RENAME COLUMN
Importante
Esta característica está en versión preliminar pública.
Se aplica a: Databricks SQL 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
-
El nombre existente de la columna.
-
El nuevo identificador de columna. El identificador debe ser único dentro de la tabla.
-
El nombre completo existente de un campo.
-
El nuevo identificador de campo. El identificador debe ser único dentro de la estructura local.
Ejemplos
Consulte los ejemplos de ALTER TABLE.