Todos os produtos
Search
Central de documentação

PolarDB:Alterar o tipo de dados de uma coluna sem bloquear a tabela

Última atualização: Jun 28, 2026

O Online Modify Column (OMC) permite executar instruções ALTER TABLE no PolarDB-X sem bloquear a tabela. Assim, as operações de linguagem de manipulação de dados (DML) continuam ininterruptamente durante as alterações de esquema.

Versões compatíveis

Operação

Versão mínima

Alterar tipos de colunas sem bloqueio

V5.4.18-17108394

Adicionar ou excluir colunas sem bloqueio

V5.4.20-20241224

Executar DDL sem bloqueio pelo Data Management (DMS)

V5.4.20-20241224

Para regras de nomenclatura de versões, consulte Notas de versão . Para verificar ou atualizar a versão da sua instância, consulte Visualize e atualize a versão de uma instância .

Operações compatíveis

O OMC oferece suporte às seguintes operações em bancos de dados nos modos AUTO e DRDS:

Operação

Compatível com OMC

MODIFY COLUMN — alterar tipo ou posição da coluna

Sim

CHANGE COLUMN — renomear uma coluna e alterar seu tipo

Sim

ADD COLUMN — adicionar uma nova coluna

Sim

DROP COLUMN — excluir uma coluna

Sim

ADD INDEX

Não

DROP INDEX

Não

SET DEFAULT

Não

Você pode combinar várias operações compatíveis em uma única instrução ALTER TABLE.

Limitações

  • Não é possível renomear colunas usadas como chaves de shard, chaves de partição ou chaves primárias, mas você pode alterar seus tipos.

  • Não é possível excluir colunas que fazem parte de uma chave de shard, chave de partição ou chave primária.

  • Não é possível adicionar restrições UNIQUE ou KEY a uma coluna recém-criada.

  • Não é possível modificar colunas geradas nem colunas referenciadas em uma expressão de coluna gerada.

Sintaxe

Especifique ALGORITHM=OMC ao final da instrução ALTER TABLE para executar a operação sem bloquear a tabela. Sem essa palavra-chave, o PolarDB-X utiliza o algoritmo padrão do MySQL, o que pode adquirir bloqueios de metadados e impedir operações DML.

ALTER TABLE tbl_name
    alter_option [, alter_option] ...
    ALGORITHM = OMC

alter_option: {
    table_options
  | ADD [COLUMN] col_name column_definition
        [FIRST | AFTER col_name]
  | CHANGE [COLUMN] old_col_name new_col_name column_definition
        [FIRST | AFTER col_name]
  | DROP [COLUMN] col_name
  | MODIFY [COLUMN] col_name column_definition
        [FIRST | AFTER col_name]
}

A cláusula ALGORITHM=OMC se aplica a todas as cláusulas alter_option presentes na mesma instrução.

Exemplos

Os exemplos abaixo utilizam uma tabela no modo AUTO. Todas as instruções usam ALGORITHM=OMC para garantir a execução sem bloqueio de tabela.

Passo 1. Crie a tabela t1.

CREATE TABLE t1(a INT PRIMARY KEY, b TINYINT, c VARCHAR(10)) PARTITION BY KEY(a);

Passo 2. Altere os tipos das colunas b e c em uma única instrução.

ALTER TABLE t1 MODIFY COLUMN b INT, MODIFY COLUMN c VARCHAR(30), ALGORITHM=OMC;

Passo 3. Renomeie a coluna b para d, altere seu tipo e adicione uma nova coluna e do tipo BIGINT — tudo em uma única instrução.

ALTER TABLE t1 CHANGE COLUMN b d INT, ADD COLUMN e BIGINT AFTER d, ALGORITHM=OMC;

Próximos passos