Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 COLUMNADD COLUMNDROP 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 }
Adicionar cláusula 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
[ COLLATE collation_name ]
[ 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
FIRSTouAFTER nameesteja 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.
Para adicionar campos a structs aninhados 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:
SQL do Databricks
Databricks Runtime 11.3 LTS e versões posterioresDefine um valor
DEFAULTpara a coluna que é usada emINSERTeMERGE ... INSERTquando a coluna não é especificada. QuaisquerSTRINGliterais eSTRINGfunções na expressão padrão usarãoUTF8_BINARYordenação.Se nenhum padrão for especificado,
DEFAULT NULLserá implícito para colunas anuláveis.default_expressionpode 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_expressionnão deve conter nenhuma subconsulta.DEFAULThá suporte para as fontesCSV,JSON,PARQUETeORC.-
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.
COLLATEcollation_namedata_typeSTRINGespecifica opcionalmente a ordenação a ser usada com a coluna ou o campo. Se não for especificado, aUTF8_BINARYordenação se aplicará.COMMENT commentUm
STRINGliteral 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.
FIRSTSe especificado, a coluna será adicionada como a primeira coluna da tabela ou o campo será adicionado como o primeiro campo de no struct contido.
AFTERidentificadorSe 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 UnityImportante
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 aplicação dessa função na coluna, em substituição ao valor original da coluna. 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 }
[, ... ]
Antes do Databricks Runtime 16.3, a cláusula não dá suporte à 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 coluna
column_name.commentdeve ser uma literal deSTRING.FIRSTouAFTERidentificadorMove a coluna de sua posição atual para a frente (
FIRST) ou imediatamenteAFTERoidentifier. Só haverá suporte para essa cláusula setable_namefor uma tabela Delta.TYPEtipo_de_dadoAplica-se a:
Databricks SQL
Databricks Runtime 15.2 e superiorAltera o tipo de dados da coluna
column_name.Só haverá suporte para essa cláusula 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 coluna
VARCHAR, por exemplo, deVARCHAR(5)paraVARCHAR(10) - Alterar o tipo de uma coluna
CHARparaVARCHAR, 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á em Visualização pública no Databricks Runtime 15.2 e superior.
Tipo de origem Tipos mais amplos com suporte BYTESHORT,INT,BIGINT, ,DECIMALDOUBLESHORTINT,BIGINT, ,DECIMALDOUBLEINTBIGINT, ,DECIMALDOUBLEBIGINTDECIMAL,DOUBLEFLOATDOUBLEDECIMALDECIMALcom maior precisão e escalaDATETIMESTAMP_NTZPara obter informações mais detalhadas sobre ampliação de tipo, veja Ampliação de tipo.
- Aumentar o tamanho de uma coluna
SET NOT NULLouDROP NOT NULLAltera o domínio de valores de coluna válidos para excluir
SET NOT NULLnulos ou incluirDROP NOT NULLnulos. 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 IDENTITYAplica-se a:
SQL do Databricks
Databricks Runtime 10.4 LTS e versões posterioresSincronizar 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 DEFAULTAplica-se a:
SQL do Databricks
Databricks Runtime 11.3 LTS e versões posterioresRemove 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 futuraINSERTSET DEFAULT default_expressionAplica-se a:
SQL do Databricks
Databricks Runtime 11.3 LTS e versões posterioresDefine um valor
DEFAULTpara a coluna que é usada emINSERTeMERGE ... INSERTquando a coluna não é especificada.Se nenhum padrão for especificado,
DEFAULT NULLserá implícito para colunas anuláveis.default_expressionpode 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_expressionnão deve conter nenhuma subconsulta.DEFAULThá suporte para as fontesCSV,JSON,ORCePARQUET.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_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.SETCláusula MASKAplica-se a:
SQL do Databricks
Databricks Runtime 12.2 LTS e versões posteriores
Somente Catálogo do UnityImportante
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 aplicação dessa função na coluna, em substituição ao valor original da coluna. 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 MASKAplica-se a:
Somente Catálogo do UnityImportante
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 dessa coluna.
SET TAGS ( { tag_name = tag_value } [, ...] )Aplica-se a:
SQL do Databricks
Databricks Runtime 13.3 LTS e versões posterioresAplicar marcas à coluna. Você precisa ter a permissão
APPLY TAGpara adicionar marcas à coluna.nome_da_tag
Um literal
STRING. Otag_namedeve 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 posterioresRemover marcas da coluna. Você precisa ter a permissão
APPLY TAGpara remover marcas da coluna.nome_da_tag
Um literal
STRING. Otag_namedeve 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
Remova uma ou mais colunas ou campos em uma relação.
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 EXISTSAo 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
Veja ALTER TABLE exemplos.