PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Allega l'ELENCO delle partizioni alla tabella esistente in postgres 11

Citazione dal manuale

Pertanto, non puoi modificare una tabella esistente non partizionata in una tabella partizionata.

È necessario creare una nuova tabella (con un nome diverso) partizionata, creare tutte le partizioni necessarie e quindi copiare i dati dalla vecchia tabella alla nuova tabella partizionata.

Qualcosa come:

create table clients_partitioned
(
  .... all columns ...
)
PARTITION BY LIST  (client_id);

Quindi crea le partizioni:

create table clients_1 
   partition of clients_partioned
   values in (1,2,3);

create table clients_1 
   partition of clients_partioned
   values in (4,5,6);

Quindi copia i dati:

insert into clients_partitioned
select *
from clients;

Una volta fatto, puoi eliminare la vecchia tabella e rinominare la nuova tabella:

drop table clients;
alter table clients_partitioned rename to clients;

Non dimenticare di ricreare le chiavi esterne e gli indici.