ALTER TABLE Cláusula COLUNA

Aplica-se a: Marque Sim Databricks SQL Marque Sim 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

  • column_identifier

    O nome da coluna a ser adicionada. O nome deve ser exclusivo dentro da tabela.

    A menos que FIRST ou AFTER name sejam especificados, a coluna ou campo será anexado no final.

  • field_name

    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: Marque Sim Databricks SQL Marque Sim Databricks Runtime 11.3 LTS e superior

    Define um DEFAULT valor para a coluna que é usado em INSERT e MERGE ... 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:

    default_expression não deve conter qualquer subconsulta.

    DEFAULT é suportado para CSV, JSON, PARQUETe ORC fontes.

  • data_type

    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.

  • AFTERidentificador

    Se especificado, a coluna ou campo será adicionado imediatamente após o campo ou coluna identifier.

  • Cláusula MASK

    Aplica-se a:Marque Sim Databricks SQL Marque Sim Databricks Runtime 12.2 LTS e superior Marque Sim 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: Marque Sim Databricks SQL Marque Sim 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

  • column_identifier

    O nome da coluna a ser alterada.

  • field_name

    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 um STRING literal.

  • FIRST ou AFTERidentificador

    Move a coluna de sua posição atual para a frente (FIRST) ou imediatamente AFTER o identifier. Esta cláusula só é suportada se table_name for uma tabela Delta.

  • TYPEdata_type

    Aplica-se a: Marque Sim Databricks SQL Marque Sim 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, de VARCHAR(5) para VARCHAR(10)
    • Alterar o tipo de uma CHAR coluna para , VARCHARpor exemplo, de CHAR(5) para VARCHAR(5)
    • Alterar o tipo de uma CHAR ou coluna para STRING, por exemplo, de VARCHAR(10) para STRINGVARCHAR .

    As seguintes alterações de tipo são suportadas para tabelas Delta com delta.enableTypeWidening definido como true:

    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 escala
    DATE TIMESTAMP_NTZ

    Para obter informações mais detalhadas sobre alargamento de tipo, consulte Alargamento de tipo.

  • SET NOT NULL ou DROP NOT NULL

    Altera o domínio de valores de coluna válidos SET NOT NULLpara excluir nulos ou incluir nulos DROP 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: Marque Sim Databricks SQL Marque Sim 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, onde n é o menor valor que satisfaz start + 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: Marque Sim Databricks SQL Marque Sim 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 com NOT NULL você precisa fornecer um valor em cada operação futura INSERT

  • SET DEFAULT default_expression

    Aplica-se a: Marque Sim Databricks SQL Marque Sim Databricks Runtime 11.3 LTS e superior

    Define um DEFAULT valor para a coluna que é usado em INSERT e MERGE ... 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:

    default_expression não deve conter uma subconsulta.

    DEFAULT é suportado para CSV, JSON, ORCe PARQUET 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 ou current_timestamp o valor é calculado uma vez quando o 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 linha.

    Quando você define um padrão usando ALTER COLUMN, as linhas existentes não são afetadas por essa alteração.

  • SETCláusula MASK

    Aplica-se a:Marque Sim Databricks SQL Marque Sim Databricks Runtime 12.2 LTS e superior Marque Sim 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: Marque Sim 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: Marque Sim Databricks SQL Marque Sim 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. O tag_name deve ser exclusivo dentro da tabela ou coluna.

    • tag_value

      Um literal STRING.

  • UNSET TAGS ( tag_name [, ...] )

    Aplica-se a: Marque Sim Databricks SQL Marque Sim 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. O tag_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: Marque Sim Databricks SQL Marque Sim 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 EXISTSo , o Azure Databricks ignora uma tentativa de soltar colunas que não existem. Caso contrário, descartar colunas não existentes causará um erro.

  • column_identifier

    O nome da coluna existente.

  • field_name

    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: Marque Sim Databricks SQL Marque Sim 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

  • column_identifier

    O nome existente da coluna.

  • to_column_identifier

    O novo identificador de coluna. O identificador deve ser exclusivo dentro da tabela.

  • field_name

    O nome totalmente qualificado existente de um campo.

  • to_field_identifier

    O novo identificador de campo. O identificador deve ser exclusivo dentro da estrutura local.

Exemplos

Veja exemplos ALTER TABLE.