Todos os produtos
Search
Central de documentação

PolarDB:ALTER TABLE…MERGE PARTITION

Última atualização: Jun 28, 2026

A instrução ALTER TABLE… MERGE PARTITION mescla duas partições em uma única partição, combinando os dados de ambas.

Nota
  • É necessário ser proprietário da tabela ou ter privilégios administrativos para executar esta instrução.

  • Esta instrução oferece suporte apenas a tabelas particionadas por LIST e RANGE. Tabelas particionadas por HASH não são suportadas.

  • Caso existam índices na tabela, eles serão criados automaticamente na nova partição.

Sintaxe

ALTER TABLE table_name MERGE PARTITIONS
        partition_name , partition_name 
        INTO PARTITION  new_part [TABLESPACE tablespace_name] ;

Parâmetros

Parâmetro

Descrição

table_name

Nome da tabela particionada. É possível incluir um qualificador de schema.

partition_name

Nomes das duas partições a serem mescladas, separados por vírgula (,).

new_part

Nome da nova partição.

Deve ser único entre todas as partições e subpartições.

tablespace_name

Tablespace destinado à nova partição.

Se omitido, a partição utilizará o tablespace padrão.

Exemplos

Crie uma tabela particionada chamada sales e insira dados de teste:

CREATE TABLE sales
(
  dept_no     number,   
  part_no     varchar2,
  country     varchar2(20),
  date        date,
  amount      number
)
PARTITION BY LIST(country)
(
  PARTITION europe VALUES('FRANCE', 'ITALY'),
  PARTITION asia VALUES('INDIA', 'PAKISTAN'),
  PARTITION americas VALUES('US', 'CANADA')
);
INSERT INTO sales VALUES
  (10, '4519b', 'FRANCE', '17-Jan-2012', '45000'),
  (20, '3788a', 'INDIA', '01-Mar-2012', '75000'),
  (40, '9519b', 'US', '12-Apr-2012', '145000'),
  (20, '3788a', 'PAKISTAN', '04-Jun-2012', '37500'),
  (40, '4577b', 'US', '11-Nov-2012', '25000'),
  (30, '7588b', 'CANADA', '14-Dec-2012', '50000'),
  (30, '9519b', 'CANADA', '01-Feb-2012', '75000'),
  (30, '4519b', 'CANADA', '08-Apr-2012', '120000'),
  (40, '3788a', 'US', '12-May-2012', '4950'),
  (10, '9519b', 'ITALY', '07-Jul-2012', '15000'),
  (10, '9519a', 'FRANCE', '18-Aug-2012', '650000'),
  (10, '9519b', 'FRANCE', '18-Aug-2012', '650000'),
  (20, '3788b', 'INDIA', '21-Sept-2012', '5090'),
  (40, '4788a', 'US', '23-Sept-2012', '4950'),
  (40, '4788b', 'US', '09-Oct-2012', '15000'),
  (20, '4519a', 'INDIA', '18-Oct-2012', '650000'),
  (20, '4519b', 'INDIA', '2-Dec-2012', '5090');

Divida a partição americas em us e canada:

ALTER TABLE sales SPLIT PARTITION americas 
  VALUES ('US')
  INTO (PARTITION us, PARTITION canada);

Mesclando us e canada em new_americas:

ALTER TABLE sales MERGE PARTITIONS us, canada
  INTO PARTITION new_americas;