ALTER TABLE Cláusula COLUMN
Aplica-se a: SQL do Databricks Databricks Runtime
Adiciona, modifica ou descarta uma coluna em uma tabela ou um campo em uma coluna em uma tabela Delta Lake.
Permissões necessárias
Se você usar o Catálogo do Unity, deverá ter MODIFY
permissão para:
- ALTER COLUMN
- ADD COLUMN
- DROP COLUMN
Todas as outras operações exigem a propriedade da tabela.
Sintaxe
ALTER TABLE table_name
{ ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause }
CláusulaADD COLUMN
Essa cláusula não tem suporte das fontes de dados JDBC
.
Adiciona uma ou mais colunas à tabela ou aos campos às colunas existentes em uma tabela do Delta Lake.
Observação
Quando você adiciona uma coluna a uma tabela Delta existente, não é possível definir um valor DEFAULT
. Todas as colunas adicionadas às tabelas Delta são tratadas como NULL
para linhas existentes. Depois de adicionar uma coluna, opcionalmente você pode definir um valor padrão para a coluna, mas isso só é aplicado para novas linhas inseridas na tabela. Use 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 precisa ser exclusivo dentro da tabela.
A menos que
FIRST
ouAFTER name
esteja especificado, a coluna ou campo será anexado ao 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: SQL do Databricks Databricks Runtime 11.3 LTS e versões posteriores
Define um valor
DEFAULT
para a coluna que é usada emINSERT
eMERGE ... INSERT
quando a coluna não é especificada.Se nenhum padrão for especificado,
DEFAULT NULL
será implícito para colunas anuláveis.default_expression
pode ser composto de literais e funções incorporadas de SQL ou operadores exceto:- Funções de agregação
- Funções de janela analíticas
- Classificação de funções de janela
- Funções geradoras com valor de tabela
default_expression
não deve conter nenhuma subconsulta.DEFAULT
há suporte para as fontesCSV
,JSON
,PARQUET
eORC
.-
Especifica o tipo dos dados da coluna ou campo. Nem todos os tipos de dados com suporte pelo Azure Databricks têm suporte de todas as fontes de dados.
COMMENT comment
Um
STRING
literal opcional que descreve a coluna ou campo adicionado.Se quiser adicionar um comentário gerado por IA em uma tabela ou coluna de tabela gerenciada pelo Catálogo do Unity, confira Adicionar comentários gerados por IA a objetos do catálogo do Unity.
FIRST
Se especificado, a coluna será adicionada como a primeira coluna da tabela ou o campo será adicionado como o primeiro campo de no struct contido.
AFTER
identifierSe especificado, a coluna ou o campo será adicionado imediatamente após o campo ou a coluna
identifier
.-
Aplica-se a: SQL do Databricks Databricks Runtime 12.2 LTS e versões posteriores Somente Catálogo do Unity
Importante
Esse recurso está em uma versão prévia.
Adiciona uma função de máscara de coluna para anonimizar dados confidenciais. Todas as consultas subsequentes dessa coluna receberão o resultado da avaliação dessa função sobre a coluna no lugar do valor original. Isso pode ser útil para fins de um controle de acesso detalhado, em que a função pode inspecionar a identidade e/ou as filiações a grupos do usuário que a invocou para determinar se quer ocultar o valor.
cláusula ALTER COLUMN
Aplica-se a: SQL do Databricks 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 coluna
column_name
.comment
deve ser uma literal deSTRING
.FIRST
ouAFTER
identificadorMove a coluna de sua posição atual para a frente (
FIRST
) ou imediatamenteAFTER
oidentifier
. Só haverá suporte para essa cláusula 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 coluna
column_name
.Só haverá suporte para essa cláusula 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 coluna
VARCHAR
, por exemplo, deVARCHAR(5)
paraVARCHAR(10)
- Alterar o tipo de uma coluna
CHAR
paraVARCHAR
, por exemplo, deCHAR(5)
paraVARCHAR(5)
- Alterar o tipo de uma coluna
CHAR
ouVARCHAR
paraSTRING
, por exemplo, deVARCHAR(10)
paraSTRING
.
As seguintes alterações de tipo são suportadas para tabelas Delta com
delta.enableTypeWidening
definido comotrue
:Importante
Esse recurso está em Visualização pública no Databricks Runtime 15.2 e superior.
Tipo de origem Tipos mais amplos com suporte 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 ampliação de tipo, veja Ampliação de tipo.
- Aumentar o tamanho de uma coluna
SET NOT NULL
ouDROP NOT NULL
Altera o domínio de valores de coluna válidos para excluir
SET NOT NULL
nulos ou incluirDROP NOT NULL
nulos. Só há suporte para essa opção em tabelas do 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: SQL do Databricks Databricks Runtime 10.4 LTS e versões posteriores
Sincronizar 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. Essa 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
, em quen
é o valor que satisfazstart + n * step >= max()
(para uma etapa positiva).Só há suporte dessa opção para colunas de identidade em tabelas do Delta Lake.
DROP DEFAULT
Aplica-se a: SQL do Databricks Databricks Runtime 11.3 LTS e versões posteriores
Remove a expressão padrão da coluna. Para colunas anuláveis, isso é equivalente a
SET DEFAULT NULL
. Para colunas definidas comNOT NULL
, é necessário fornecer um valor em cada operação futuraINSERT
SET DEFAULT default_expression
Aplica-se a: SQL do Databricks Databricks Runtime 11.3 LTS e versões posteriores
Define um valor
DEFAULT
para a coluna que é usada emINSERT
eMERGE ... INSERT
quando a coluna não é especificada.Se nenhum padrão for especificado,
DEFAULT NULL
será implícito para colunas anuláveis.default_expression
pode ser composto de literais e funções incorporadas de SQL ou operadores exceto:- Funções de agregação
- Funções de janela analíticas
- Classificação de funções de janela
- Funções geradoras com valor de tabela
default_expression
não deve conter nenhuma subconsulta.DEFAULT
há suporte para as fontesCSV
,JSON
,ORC
ePARQUET
.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 quandoALTER 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 linhas.Quando você define um padrão usando
ALTER COLUMN
, as linhas existentes não são afetadas por essa alteração.-
Aplica-se a: SQL do Databricks Databricks Runtime 12.2 LTS e versões posteriores Somente Catálogo do Unity
Importante
Esse recurso está em uma versão prévia.
Adiciona uma função de máscara de coluna para anonimizar dados confidenciais. Todas as consultas subsequentes dessa coluna receberão o resultado da avaliação dessa função sobre a coluna no lugar do valor original. Isso pode ser útil para fins de um controle de acesso detalhado, em que a função pode inspecionar a identidade e/ou as filiações a grupos do usuário que a invocou para determinar se quer ocultar o valor.
DROP MASK
Aplica-se a: Somente Catálogo do Unity
Importante
Esse recurso está em uma versão prévia.
Remove a máscara de coluna desta coluna, se houver. Consultas futuras dessa coluna receberão os valores originais da coluna.
SET TAGS ( { tag_name = tag_value } [, ...] )
Aplica-se a: SQL do Databricks Databricks Runtime 13.3 LTS e versões posteriores
Aplicar marcas à coluna. Você precisa ter a permissão
APPLY TAG
para adicionar marcas à coluna.nome_da_tag
Um literal
STRING
. Otag_name
deve ser exclusivo na tabela ou coluna.tag_value
Um literal
STRING
.
UNSET TAGS ( tag_name [, ...] )
Aplica-se a: SQL do Databricks Databricks Runtime 13.3 LTS e versões posteriores
Remover marcas da coluna. Você precisa ter a permissão
APPLY TAG
para remover marcas da coluna.nome_da_tag
Um literal
STRING
. Otag_name
deve ser exclusivo na tabela ou coluna.
cláusula DROP COLUMN
Importante
Esse recurso está em uma versão prévia.
Aplica-se a: SQL do Databricks Databricks Runtime 11.3 LTS e versões posteriores
Remover uma ou mais colunas ou campos em uma tabela Delta Lake.
Ao remover uma coluna ou um campo, você deve remover as restrições de verificação dependentes e as colunas geradas.
Para obter os requisitos, confira Renomear e remover colunas usando o mapeamento de colunas do Delta Lake.
Sintaxe
DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )
Parâmetros
IF EXISTS
Ao especificar
IF EXISTS
, o Azure Databricks ignora uma tentativa de remover colunas que não existem. Caso contrário, remoção de colunas não existentes causarão um erro.-
O nome da coluna existente.
-
O nome totalmente qualificado de um campo existente.
cláusula RENAME COLUMN
Importante
Esse recurso está em uma versão prévia.
Aplica-se a: SQL do Databricks Databricks Runtime 10.4 LTS e versões posteriores
Renomeia uma coluna ou campo em uma tabela do Delta Lake habilitada para mapeamento de coluna.
Ao renomear uma coluna ou campo, você também precisa alterar as restrições de verificação dependentes e as colunas geradas. Quaisquer chaves primárias e estrangeiras que usam a coluna serão removidas. No caso de chaves estrangeiras, você deve ter a propriedade da tabela na qual a chave estrangeira está definida.
Para obter os requisitos e como habilitar o mapeamento de coluna, consulte Renomear e descartar colunas com o mapeamento de coluna do 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 da 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 do struct local.
Exemplos
Confira Exemplos de ALTER TABLE.