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
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 |
|
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 |
|
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 |
|
Alterar o tipo de dados de uma coluna |
Sim |
Use |
|
Alterar o valor padrão de uma coluna |
Sim |
Use |
|
Alterar o comentário de uma coluna |
Sim |
Use |
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
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 |
|
|
Nome da tabela externa. |
|
|
Partição a ser registrada. Para adicionar uma partição multinível, especifique vários pares |
|
|
Caminho do OSS onde residem os dados da partição. Por exemplo, se a partição for |
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 |
|
|
Nome da tabela externa. |
|
|
Partição a ser removida. Para excluir uma partição multinível, especifique vários pares |
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');