Todos os produtos
Search
Central de documentação

AnalyticDB:ALTER TABLE (tabelas externas)

Última atualização: Jun 27, 2026

Use ALTER TABLE para modificar o schema de uma tabela externa no AnalyticDB for MySQL. As operações compatíveis incluem adicionar, remover, renomear e modificar colunas, além de adicionar e remover partições em tabelas externas particionadas do Object Storage Service (OSS).

Este tópico aplica-se apenas a tabelas externas. Para consultar a sintaxe de ALTER TABLE referente às tabelas internas do AnalyticDB for MySQL, consulte ALTER TABLE.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um cluster do AnalyticDB for MySQL nas edições Enterprise Edition, Basic Edition ou Data Lakehouse Edition

Colunas

Importante

Todas as operações de coluna exigem a versão V3.2.1.0 ou posterior do cluster. Para visualizar e atualizar a versão secundária do seu cluster, faça login no console do AnalyticDB for MySQL e acesse a seção Configuration Information na página Cluster Information. Para obter instruções, consulte Atualizar a versão secundária de um cluster.

A tabela a seguir resume as operações de coluna compatíveis e suas restrições:

Operação

Compatível

Observações

Adicionar uma coluna que não seja chave primária

Sim

Use ADD COLUMN.

Adicionar uma coluna de chave primária

Não

Não é possível adicionar colunas de chave primária a uma tabela externa existente.

Remover uma coluna que não seja chave primária

Sim

Use DROP COLUMN.

Remover uma coluna de chave primária

Não

Não é possível remover colunas de chave primária de uma tabela externa existente.

Renomear uma coluna

Sim

Use RENAME COLUMN.

Alterar o tipo de dados de uma coluna

Sim

Use MODIFY COLUMN.

Alterar o valor padrão de uma coluna

Sim

Use MODIFY COLUMN ... DEFAULT.

Alterar o comentário de uma coluna

Sim

Use MODIFY COLUMN ... COMMENT.

Adicionar uma coluna

Sintaxe

ALTER TABLE db_name.table_name ADD [COLUMN]
  {column_name column_type [DEFAULT {constant|CURRENT_TIMESTAMP}|AUTO_INCREMENT] [NULL|NOT NULL] [COMMENT 'comment']
  | (column column_type [DEFAULT {constant|CURRENT_TIMESTAMP}|AUTO_INCREMENT] [NULL|NOT NULL] [COMMENT 'comment'],...)}

Notas de uso

Não é permitido adicionar colunas de chave primária.

Exemplos

Adicione uma coluna VARCHAR chamada province à tabela osstest1:

ALTER TABLE osstest1 ADD COLUMN province VARCHAR COMMENT 'Province';

Adicione duas colunas simultaneamente à tabela osstest1 — uma coluna Boolean chamada vip e uma coluna VARCHAR chamada tags com um valor padrão:

ALTER TABLE osstest1 ADD COLUMN (vip BOOLEAN COMMENT 'VIP', tags VARCHAR DEFAULT 'None' COMMENT 'Tags');

Remover uma coluna

Sintaxe

ALTER TABLE db_name.table_name DROP [COLUMN] column_name

Notas de uso

Não é permitido remover colunas de chave primária.

Exemplo

Remova a coluna province da tabela osstest1:

ALTER TABLE osstest1 DROP COLUMN province;

Renomear uma coluna

Sintaxe

ALTER TABLE table_name RENAME COLUMN column_name to new_column_name

Exemplo

Renomeie a coluna city_name na tabela osstest1 para city:

ALTER TABLE osstest1 RENAME COLUMN city_name to city;

Alterar o tipo de dados de uma coluna

Sintaxe

ALTER TABLE table_name MODIFY [COLUMN] column_name new_column_type

Exemplo

Altere o tipo de dados da coluna age na tabela osstest1 de INT para BIGINT:

ALTER TABLE osstest1 MODIFY COLUMN age BIGINT;

Alterar o valor padrão de uma coluna

Sintaxe

ALTER TABLE table_name MODIFY [COLUMN] column_name column_type DEFAULT constant|CURRENT_TIMESTAMP

Exemplo

Defina o valor padrão da coluna sex na tabela osstest1 como 0:

ALTER TABLE osstest1 MODIFY COLUMN sex INT DEFAULT 0;

Alterar o comentário de uma coluna

Sintaxe

ALTER TABLE table_name MODIFY [COLUMN] column_name column_type COMMENT 'new_comment'

Exemplo

Atualize o comentário da coluna region na tabela osstest1:

ALTER TABLE osstest1 MODIFY COLUMN region VARCHAR COMMENT 'region';

Partições

Importante

As operações de partição descritas abaixo aplicam-se exclusivamente a tabelas externas particionadas do OSS. É necessária a versão V3.1.8.0 ou posterior do cluster. Para visualizar e atualizar a versão secundária do seu cluster, faça login no console do AnalyticDB for MySQL e acesse a seção Configuration Information na página Cluster Information. Para obter instruções, consulte Atualizar a versão secundária de um cluster.

Use ALTER TABLE ADD PARTITION para adicionar manualmente uma partição simples ou multinível. Para permitir que o AnalyticDB for MySQL verifique um caminho do OSS e registre as partições automaticamente, use MSCK REPAIR TABLE.

Adicionar uma partição

Sintaxe

ALTER TABLE table_name ADD PARTITION (partition_key=value[,...]) LOCATION 'location';

Parâmetros

Parâmetro

Descrição

table_name

Nome da tabela externa.

(partition_key=value[,...])

Partição a ser registrada. Para adicionar uma partição multinível, especifique vários pares partition_key=value separados por vírgulas. Exemplo: (date='20230613', city='hangzhou').

location

Caminho do OSS onde residem os dados da partição. Por exemplo, se a partição for p1='20230613' e o caminho do objeto for oss://testBucketName/testfolder/p1=20230613/data.csv, defina este parâmetro como oss://testBucketName/testfolder/.

Exemplos

Adicione uma única partição:

ALTER TABLE adb_external_db.partition_table ADD PARTITION (p1='20230613') LOCATION 'oss://testBucketName/testfolder/p1=20230613/';

Adicione uma partição multinível:

ALTER TABLE adb_external_db.partition_table ADD PARTITION (p1='20230613', p2='hangzhou') LOCATION 'oss://testBucketName/testfolder/p1=20230613/p2=hangzhou';

Remover uma partição

Sintaxe

ALTER TABLE table_name DROP PARTITION (partition_key=value[,...]);

Parâmetros

Parâmetro

Descrição

table_name

Nome da tabela externa.

(partition_key=value[,...])

Partição a ser removida. Para excluir uma partição multinível, especifique vários pares partition_key=value separados por vírgulas. Exemplo: (date='20230613', city='hangzhou').

Exemplos

Remova uma única partição:

ALTER TABLE adb_external_db.partition_table DROP PARTITION (p1='20230613');

Remova uma partição multinível:

ALTER TABLE adb_external_db.partition_table DROP PARTITION (p1='20230613', p2='hangzhou');

Próximos passos