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
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 em INSERT e MERGE ... 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:
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 } }
Move a coluna de sua posição atual para a frente (FIRST) ou imediatamente AFTER o identifier.
Só haverá suporte para essa cláusula se table_name for uma tabela Delta.
Aplica-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, de VARCHAR(5)para VARCHAR(10)
Alterar o tipo de uma coluna CHAR para VARCHAR, por exemplo, de CHAR(5) para VARCHAR(5)
Alterar o tipo de uma coluna CHAR ou VARCHAR para STRING, por exemplo, de VARCHAR(10) para STRING.
As seguintes alterações de tipo são suportadas para tabelas Delta com delta.enableTypeWideningdefinido como true:
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 escala
DATE
TIMESTAMP_NTZ
Para obter informações mais detalhadas sobre ampliação de tipo, veja Ampliação de tipo.
SET NOT NULL ou DROP NOT NULL
Altera o domínio de valores de coluna válidos para excluir SET NOT NULL nulos ou incluir DROP 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 que n é o valor que satisfaz start + 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 com NOT NULL, é necessário fornecer um valor em cada operação futura INSERT
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 em INSERT e MERGE ... 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:
default_expression não deve conter nenhuma subconsulta.
DEFAULT há suporte para as fontes CSV, JSON, ORC e PARQUET.
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 ou current_timestamp, o valor é calculado quando ALTER 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.
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 [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.
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.