Todos os produtos
Search
Central de documentação

PolarDB:ALTER TABLE RENAME PARTITION

Última atualização: Jun 28, 2026

Renomeia uma partição ou subpartição. Esta operação altera apenas metadados, mas pode invalidar códigos de aplicação, procedimentos armazenados ou views que referenciem o nome antigo.

Sinopse

ALTER TABLE table_name RENAME PARTITION old_name TO new_name;

ALTER TABLE table_name RENAME SUBPARTITION old_name TO new_name;

Parâmetros

Parâmetro

Obrigatório

Descrição

Exemplo

table_name

Sim

Nome da tabela particionada de destino.

customer_data

old_name

Sim

Nome atual da partição ou subpartição a ser renomeada.

sp_asia

new_name

Sim

Novo nome para a partição ou subpartição.

sp_2023_asia

Observações de uso

  • Para executar este comando, seja o proprietário da tabela ou tenha a permissão ALTER sobre ela.

  • O comando RENAME PARTITION adquire um AccessExclusiveLock no nível da tabela na partição de destino. Esse bloqueio impede todas as operações de Linguagem de Manipulação de Dados (DML) e a maioria das operações de Linguagem de Definição de Dados (DDL). Execute este comando fora dos horários de pico para evitar o bloqueio de outras operações na tabela.

  • O novo nome deve ser exclusivo na tabela. Nenhuma outra partição ou subpartição pode ter o mesmo nome.

  • Este comando é uma operação DDL: ele faz commit automaticamente e não pode ser revertido. Para desfazer a renomeação, execute outro comando RENAME com o nome original.

  • Se códigos de aplicação, procedimentos armazenados ou views referenciarem o nome antigo da partição, esses objetos falharão após a renomeação. Analise o impacto completamente e atualize todas as referências dependentes antes de renomear.

Exemplo

Este exemplo renomeia a subpartição sp_asia para sp_2023_asia em uma tabela particionada composta RANGE-LIST chamada customer_data.

Prepare the environment

Crie uma tabela particionada composta RANGE-LIST chamada customer_data.

-- Create a composite partitioned table
CREATE TABLE customer_data (
    customer_id INT, region VARCHAR2(20), reg_date DATE
)
PARTITION BY RANGE (reg_date)
SUBPARTITION BY LIST (region) (
    PARTITION p_2023 VALUES LESS THAN (TO_DATE('2024-01-01', 'YYYY-MM-DD')) (
        SUBPARTITION sp_asia VALUES ('Asia'),
        SUBPARTITION sp_2023_europe VALUES ('Europe')
    )
);

Verificar o estado atual

Confirme se a subpartição sp_asia existe antes de renomeá-la.

SELECT SUBPARTITION_NAME FROM USER_TAB_SUBPARTITIONS
WHERE TABLE_NAME = 'CUSTOMER_DATA';

Saída esperada:

SUBPARTITION_NAME
-----------------
SP_ASIA
SP_2023_EUROPE

Executar a renomeação

ALTER TABLE customer_data RENAME SUBPARTITION sp_asia TO sp_2023_asia;

Verify the result

Execute a mesma consulta para confirmar que a renomeação teve efeito.

SELECT SUBPARTITION_NAME FROM USER_TAB_SUBPARTITIONS
WHERE TABLE_NAME = 'CUSTOMER_DATA';

Saída esperada:

SUBPARTITION_NAME
-----------------
SP_2023_ASIA
SP_2023_EUROPE

A entrada sp_asia não aparece mais, e sp_2023_asia ocupa seu lugar.

Perguntas frequentes

**Por que recebo o erro ORA-14078: partition name is already in use?**

O new_name especificado já está em uso por outra partição ou subpartição na mesma tabela. Escolha um nome exclusivo.

**Por que recebo o erro ORA-14076: partition name must be specified?**

O old_name especificado não existe. Execute a consulta de verificação prévia em Verificar o estado atual para validar o nome da partição.

Após a renomeação, por que minhas aplicações ou scripts param de funcionar?

O nome antigo da partição está codificado diretamente nessas aplicações ou scripts. Atualize todas as referências para usar o novo nome.

Próximos passos