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

Vedhæft partitionsliste til eksisterende tabel i postgres 11

Citat fra manualen

Så du kan ikke ændre en eksisterende ikke-opdelt tabel til en opdelt tabel.

Du skal oprette en ny tabel (med et andet navn), der er partitioneret, oprette alle nødvendige partitioner og derefter kopiere dataene fra den gamle tabel til den nye, opdelte tabel.

Noget som:

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

Opret derefter partitionerne:

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);

Kopier derefter dataene:

insert into clients_partitioned
select *
from clients;

Når det er gjort, kan du slippe den gamle tabel og omdøbe den nye tabel:

drop table clients;
alter table clients_partitioned rename to clients;

Glem ikke at genskabe dine fremmednøgler og indekser.



  1. Sådan forbinder du resultater af 2 tabeller baseret på ikke-betingelse

  2. Fejl på ALTER TYPE i postgres relation eksisterer ikke

  3. Implementering af ASP.NET-websted på Linux-server

  4. Introduktion til Python SQL-biblioteker