ALTER TABLE Cláusula COLUNA
Aplica-se a: Databricks SQL Databricks Runtime
Adiciona, modifica ou solta uma coluna em uma tabela ou um campo em uma coluna em uma tabela Delta Lake.
Permissões obrigatórias
Se você usar o Catálogo Unity, deverá ter MODIFY
permissão para:
- COLUNA ALTER
- ADICIONAR COLUNA
- SOLTAR COLUNA
Todas as outras operações requerem a propriedade da tabela.
Sintaxe
ALTER TABLE table_name
{ ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause }
Cláusula ADD COLUMN
Esta cláusula não é suportada para JDBC
fontes de dados.
Adiciona uma ou mais colunas à tabela ou campos a colunas existentes em uma tabela Delta Lake.
Nota
Quando você adiciona uma coluna a uma tabela Delta existente, não é possível definir um DEFAULT
valor. Todas as colunas adicionadas às tabelas Delta são tratadas como NULL
para linhas existentes. Depois de adicionar uma coluna, você pode, opcionalmente, definir um valor padrão para a coluna, mas isso só é aplicado para novas linhas inseridas na tabela. Utilize a seguinte sintaxe:
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_expression
Sintaxe
{ ADD [ COLUMN | COLUMNS ]
( { { column_identifier | field_name } data_type
[ DEFAULT clause ] [ COMMENT comment ] [ FIRST | AFTER identifier ]
[ MASK clause ] } [, ...] ) }
Parâmetros
-
O nome da coluna a ser adicionada. O nome deve ser exclusivo dentro da tabela.
A menos que
FIRST
ouAFTER name
sejam especificados, a coluna ou campo será anexado no final. -
O nome totalmente qualificado do campo a ser adicionado a uma coluna existente. Todos os componentes do caminho para o campo aninhado devem existir e o próprio nome do campo deve ser exclusivo.
DEFAULT default_expression
Aplica-se a: Databricks SQL Databricks Runtime 11.3 LTS e superior
Define um
DEFAULT
valor para a coluna que é usado emINSERT
eMERGE ... INSERT
quando a coluna não é especificada.Se nenhum padrão for especificado,
DEFAULT NULL
estará implícito para colunas anuláveis.default_expression
pode ser composto de literais e funções ou operadores SQL internos, exceto:- Funções agregadas
- Funções de janela analítica
- Funções da janela de classificação
- Funções do gerador com valor de tabela
default_expression
não deve conter qualquer subconsulta.DEFAULT
é suportado paraCSV
,JSON
,PARQUET
eORC
fontes.-
Especifica o tipo de dados da coluna ou campo. Nem todos os tipos de dados suportados pelo Azure Databricks são suportados por todas as origens de dados.
COMMENT comment
Um literal opcional
STRING
que descreve a coluna ou campo adicionado.Se você quiser adicionar um comentário gerado por IA para uma tabela ou coluna de tabela gerenciada pelo Unity Catalog, consulte Adicionar comentários gerados por IA a uma tabela.
FIRST
Se especificado, a coluna será adicionada como a primeira coluna da tabela, ou o campo será adicionado como o primeiro campo da estrutura que contém.
AFTER
identificadorSe especificado, a coluna ou campo será adicionado imediatamente após o campo ou coluna
identifier
.-
Aplica-se a: Databricks SQL Databricks Runtime 12.2 LTS e superior somente Unity Catalog
Importante
Esta funcionalidade está em Pré-visualização Pública.
Adiciona uma função de máscara de coluna para anonimizar dados confidenciais. Todas as consultas futuras dessa coluna receberão o resultado da avaliação dessa função sobre a coluna no lugar do valor original da coluna. Isso pode ser útil para fins de controle de acesso refinado, em que a função pode inspecionar a identidade e/ou associações de grupo do usuário que invoca para decidir se deseja redigir o valor.
Cláusula ALTER COLUMN
Aplica-se a: Databricks SQL Databricks Runtime
Altera uma propriedade ou o local de uma coluna.
Sintaxe
{ { 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
-
O nome da coluna a ser alterada.
-
O nome totalmente qualificado do campo a ser alterado. Todos os componentes do caminho para o campo aninhado devem existir.
COMMENT comment
Altera a descrição da
column_name
coluna.comment
deve ser umSTRING
literal.FIRST
ouAFTER
identificadorMove a coluna de sua posição atual para a frente (
FIRST
) ou imediatamenteAFTER
oidentifier
. Esta cláusula só é suportada setable_name
for uma tabela Delta.TYPE
data_typeAplica-se a: Databricks SQL Databricks Runtime 15.2 e superior
Altera o tipo de dados da
column_name
coluna.Esta cláusula só é suportada se
table_name
for uma tabela Delta.As seguintes alterações de tipo são suportadas para todas as tabelas Delta:
- Aumentar o tamanho de uma
VARCHAR
coluna, por exemplo, deVARCHAR(5)
paraVARCHAR(10)
- Alterar o tipo de uma
CHAR
coluna para ,VARCHAR
por exemplo, deCHAR(5)
paraVARCHAR(5)
- Alterar o tipo de uma
CHAR
ou coluna paraSTRING
, por exemplo, deVARCHAR(10)
paraSTRING
VARCHAR
.
As seguintes alterações de tipo são suportadas para tabelas Delta com
delta.enableTypeWidening
definido comotrue
:Importante
Esse recurso está no Public Preview no Databricks Runtime 15.2 e superior.
Source type Tipos mais amplos suportados BYTE
SHORT
,INT
,BIGINT
,DECIMAL
,DOUBLE
SHORT
INT
,BIGINT
,DECIMAL
,DOUBLE
INT
BIGINT
,DECIMAL
,DOUBLE
BIGINT
DECIMAL
,DOUBLE
FLOAT
DOUBLE
DECIMAL
DECIMAL
com maior precisão e escalaDATE
TIMESTAMP_NTZ
Para obter informações mais detalhadas sobre alargamento de tipo, consulte Alargamento de tipo.
- Aumentar o tamanho de uma
SET NOT NULL
ouDROP NOT NULL
Altera o domínio de valores de coluna válidos
SET NOT NULL
para excluir nulos ou incluir nulosDROP NOT NULL
. Esta opção só é suportada para tabelas Delta Lake. O Delta Lake garantirá que a restrição seja válida para todos os dados novos e existentes.SYNC IDENTITY
Aplica-se a: Databricks SQL Databricks Runtime 10.4 LTS e superior
Sincronize os metadados de uma coluna de identidade com os dados reais. Quando você escreve seus próprios valores em uma coluna de identidade, ela pode não estar em conformidade com os metadados. Esta opção avalia o estado e atualiza os metadados para serem consistentes com os dados reais. Após esse comando, o próximo valor de identidade atribuído automaticamente começará a partir de
start + (n + 1) * step
, onden
é o menor valor que satisfazstart + n * step >= max()
(para uma etapa positiva).Esta opção só é suportada para colunas de identidade em tabelas Delta Lake.
DROP DEFAULT
Aplica-se a: Databricks SQL Databricks Runtime 11.3 LTS e superior
Remove a expressão padrão da coluna. Para colunas anuláveis, isso é equivalente a
SET DEFAULT NULL
. Para colunas definidas comNOT NULL
você precisa fornecer um valor em cada operação futuraINSERT
SET DEFAULT default_expression
Aplica-se a: Databricks SQL Databricks Runtime 11.3 LTS e superior
Define um
DEFAULT
valor para a coluna que é usado emINSERT
eMERGE ... INSERT
quando a coluna não é especificada.Se nenhum padrão for especificado
DEFAULT NULL
estará implícito para colunas anuláveis.default_expression
pode ser composto por literais, funções SQL internas ou operadores, exceto:- Funções agregadas
- Funções de janela analítica
- Funções da janela de classificação
- Funções do gerador com valor de tabela
default_expression
não deve conter uma subconsulta.DEFAULT
é suportado paraCSV
,JSON
,ORC
ePARQUET
fontes.Quando você define o padrão para uma coluna recém-adicionada, o padrão se aplica a todas as linhas pré-existentes. Se o padrão incluir uma função não determinística, como
rand
oucurrent_timestamp
o valor é calculado uma vez quando oALTER TABLE
é executado, e aplicado como uma constante a linhas pré-existentes. Para linhas recém-inseridas, a expressão padrão é executada uma vez por linha.Quando você define um padrão usando
ALTER COLUMN
, as linhas existentes não são afetadas por essa alteração.-
Aplica-se a: Databricks SQL Databricks Runtime 12.2 LTS e superior somente Unity Catalog
Importante
Esta funcionalidade está em Pré-visualização Pública.
Adiciona uma função de máscara de coluna para anonimizar dados confidenciais. Todas as consultas futuras dessa coluna receberão o resultado da avaliação dessa função sobre a coluna no lugar do valor original da coluna. Isso pode ser útil para fins de controle de acesso refinado, em que a função pode inspecionar a identidade e/ou associações de grupo do usuário que invoca para decidir se deseja redigir o valor.
DROP MASK
Aplica-se a: Somente catálogo Unity
Importante
Esta funcionalidade está em Pré-visualização Pública.
Remove a máscara de coluna desta coluna, se houver. Consultas futuras desta coluna receberão os valores originais da coluna.
SET TAGS ( { tag_name = tag_value } [, ...] )
Aplica-se a: Databricks SQL Databricks Runtime 13.3 LTS e superior
Aplique tags à coluna. Você precisa ter
APPLY TAG
permissão para adicionar tags à coluna.tag_name
Um literal
STRING
. Otag_name
deve ser exclusivo dentro da tabela ou coluna.tag_value
Um literal
STRING
.
UNSET TAGS ( tag_name [, ...] )
Aplica-se a: Databricks SQL Databricks Runtime 13.3 LTS e superior
Remova as tags da coluna. Você precisa ter
APPLY TAG
permissão para remover tags da coluna.tag_name
Um literal
STRING
. Otag_name
deve ser exclusivo dentro da tabela ou coluna.
Cláusula DROP COLUMN
Importante
Esta funcionalidade está em Pré-visualização Pública.
Aplica-se a: Databricks SQL Databricks Runtime 11.3 LTS e superior
Solte uma ou mais colunas ou campos em uma tabela Delta Lake.
Ao soltar uma coluna ou campo, você deve descartar restrições de verificação dependentes e colunas geradas.
Para obter os requisitos, consulte Renomear e soltar colunas com mapeamento de colunas Delta Lake.
Sintaxe
DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )
Parâmetros
IF EXISTS
Quando você especifica
IF EXISTS
o , o Azure Databricks ignora uma tentativa de soltar colunas que não existem. Caso contrário, descartar colunas não existentes causará um erro.-
O nome da coluna existente.
-
O nome totalmente qualificado de um campo existente.
Cláusula RENOMEAR COLUNA
Importante
Esta funcionalidade está em Pré-visualização Pública.
Aplica-se a: Databricks SQL Databricks Runtime 11.3 LTS e superior
Renomeia uma coluna ou campo em uma tabela Delta Lake.
Ao renomear uma coluna ou campo, você também precisa alterar restrições de verificação dependentes e colunas geradas. Todas as chaves primárias e chaves estrangeiras que usam a coluna serão descartadas. No caso de chaves estrangeiras, você deve possuir a tabela na qual a chave estrangeira é definida.
Para obter os requisitos, consulte Renomear e soltar colunas com mapeamento de colunas Delta Lake.
Sintaxe
RENAME COLUMN { column_identifier TO to_column_identifier|
field_name TO to_field_identifier }
Parâmetros
-
O nome existente da coluna.
-
O novo identificador de coluna. O identificador deve ser exclusivo dentro da tabela.
-
O nome totalmente qualificado existente de um campo.
-
O novo identificador de campo. O identificador deve ser exclusivo dentro da estrutura local.
Exemplos
Veja exemplos ALTER TABLE.