Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:
Databricks SQL
Databricks Runtime
Adiciona, modifica ou elimina uma coluna numa tabela, ou um campo numa coluna numa tabela de Delta Lake.
Permissões obrigatórias
Se você usar o Catálogo Unity, deverá ter MODIFY permissão para:
ALTER COLUMNADD COLUMNDROP COLUMN
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 }
Adicionar cláusula 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
[ COLLATE collation_name ]
[ 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
FIRSTouAFTER namesejam 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 único.
Para adicionar campos a estruturas aninhadas ou
ARRAYMAPtipos, use os seguintes nomes especiais:-
ELEMENTpara navegar até umARRAYelemento. -
KEYpara navegar até umaMAPchave. -
VALUEpara navegar até umMAPvalor.
Por exemplo:
phonenumbers.element.countrycodeadiciona o campocountrycodea cada elemento daphonenumbersmatriz. -
DEFAULT default_expressionAplica-se a:
Databricks SQL
Databricks Runtime 11.3 LTS e superiorDefine um
DEFAULTvalor para a coluna que é usado emINSERTeMERGE ... INSERTquando a coluna não é especificada. Quaisquer literaisSTRINGe funçõesSTRINGusados na expressão padrão utilizarão a ordenaçãoUTF8_BINARY.Se nenhum padrão for especificado,
DEFAULT NULLé considerado implícito para colunas anuláveis.default_expressionpode 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 geradoras de valores de tabela
default_expressionnão deve conter qualquer subconsulta.DEFAULTé suportado paraCSV,JSON,PARQUETeORCfontes.-
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.
COLLATEcollation_namePara
data_typeSTRINGespecifica opcionalmente o agrupamento a ser usado com a coluna ou campo. Se não for especificado, aplica-se o agrupamentoUTF8_BINARY.COMMENT commentUm literal
STRINGopcional que descreve a coluna ou o 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 objetos do Unity Catalog.
FIRSTSe 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.
AFTERidentificadorSe 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
apenas no Catálogo UnityImportante
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 subsequentes 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, onde a função pode inspecionar a identidade ou as associações de grupo do usuário que invoca para determinar se o valor deve ser redigido.
Cláusula ALTER COLUMN
Aplica-se a:
Databricks SQL
Databricks Runtime
Altera uma propriedade ou a posição 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 }
[, ... ]
Antes do Databricks Runtime 16.3, a cláusula não suportava a alteração de várias colunas em uma única cláusula.
{ ALTER | CHANGE } [ COLUMN ]
{ column_identifier | field_name }
{ SET { MASK clause } |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause }
Parâmetros
-
O nome da coluna a ser alterada.
Se um identificador de coluna for referenciado mais de uma vez, o Azure Databricks gerará NOT_SUPPORTED_CHANGE_SAME_COLUMN.
-
O nome totalmente qualificado do campo a ser alterado. Todos os componentes do caminho para o campo aninhado devem existir.
Se um nome de campo for referenciado mais de uma vez, o Azure Databricks gerará NOT_SUPPORTED_CHANGE_SAME_COLUMN.
COMMENT commentAltera a descrição da
column_namecoluna.commenttem de ser umSTRINGliteral.FIRSTouAFTERidentificadorMove a coluna de sua posição atual para a frente (
FIRST) ou imediatamenteAFTERoidentifier. Esta cláusula só é suportada setable_namefor uma tabela Delta.TYPEtipo_de_dadosAplica-se a:
Databricks SQL
Databricks Runtime 15.2 e superiorAltera o tipo de dados da
column_namecoluna.Esta cláusula só é suportada se
table_namefor uma tabela Delta.As seguintes alterações de tipo são suportadas para todas as tabelas Delta:
- Aumentar o tamanho de uma
VARCHARcoluna, por exemplo, deVARCHAR(5)paraVARCHAR(10) - Alterar o tipo de uma coluna
CHARpara umVARCHAR, por exemplo, deCHAR(5)paraVARCHAR(5) - Alterar o tipo de uma coluna
CHARouVARCHARparaSTRING, por exemplo, deVARCHAR(10)paraSTRING.
As seguintes alterações de tipo são suportadas para tabelas Delta com
delta.enableTypeWideningdefinido comotrue:Importante
Esse recurso está no Public Preview no Databricks Runtime 15.2 e superior.
Tipo de fonte Tipos mais amplos suportados BYTESHORT,INT,BIGINT,DECIMAL,DOUBLESHORTINT,BIGINT,DECIMAL,DOUBLEINTBIGINT,DECIMAL,DOUBLEBIGINTDECIMAL,DOUBLEFLOATDOUBLEDECIMALDECIMALcom maior precisão e escalaDATETIMESTAMP_NTZPara obter informações mais detalhadas sobre alargamento de tipo, consulte Alargamento de tipo.
- Aumentar o tamanho de uma
SET NOT NULLouDROP NOT NULLAltera o domínio de valores válidos de coluna para excluir nulos
SET NOT NULLou 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 IDENTITYAplica-se a:
Databricks SQL
Databricks Runtime 10.4 LTS e posterioresSincronize 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 DEFAULTAplica-se a:
Databricks SQL
Databricks Runtime 11.3 LTS e superiorRemove a expressão padrão da coluna. Para colunas anuláveis, isso é equivalente a
SET DEFAULT NULL. Para colunas definidas comNOT NULLvocê precisa fornecer um valor em cada operação futuraINSERTSET DEFAULT default_expressionAplica-se a:
Databricks SQL
Databricks Runtime 11.3 LTS e superiorDefine um
DEFAULTvalor para a coluna que é usado emINSERTeMERGE ... INSERTquando a coluna não é especificada.Se nenhum padrão for especificado,
DEFAULT NULLé considerado para colunas anuláveis.default_expressionpode 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 geradoras de valores de tabela
default_expressionnão deve conter uma subconsulta.DEFAULTé suportado paraCSV,JSON,ORCePARQUETfontes.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
randoucurrent_timestampo 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.SETCláusula MASKAplica-se a:
Databricks SQL
Databricks Runtime 12.2 LTS e superior
apenas no Catálogo UnityImportante
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 subsequentes 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, onde a função pode inspecionar a identidade ou as associações de grupo do usuário que invoca para determinar se o valor deve ser redigido.
DROP MASKAplica-se a:
apenas ao Unity CatalogImportante
Esta funcionalidade está em Pré-visualização Pública.
Remova 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 superiorAplique etiquetas à coluna. Você precisa ter
APPLY TAGpermissão para adicionar tags à coluna.tag_name
Um literal
STRING. Otag_namedeve 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 superiorRemova as tags da coluna. Você precisa ter
APPLY TAGpermissão para remover tags da coluna.tag_name
Um literal
STRING. Otag_namedeve 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
Remova uma ou mais colunas ou campos em uma tabela ou entidade.
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 remover colunas com mapeamento de colunas do Delta Lake.
Sintaxe
DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )
Parâmetros
IF EXISTSQuando especifica
IF EXISTS, o Azure Databricks ignora uma tentativa de eliminar 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 RENAME COLUMN
Importante
Esta funcionalidade está em Pré-visualização Pública.
Aplica-se a:
Databricks SQL
Databricks Runtime 10.4 LTS e posteriores
Renomeia uma coluna ou campo em uma tabela Delta Lake habilitada para mapeamento de coluna.
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 associadas à coluna serão descartadas. No caso de chaves estrangeiras, você deve possuir a tabela na qual a chave estrangeira é definida.
Para obter os requisitos e saber como ativar o mapeamento de colunas, veja Renomear e soltar colunas com o mapeamento de colunas 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 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.