sql >> Databáze >  >> RDS >> PostgreSQL

Připojte oddíl LIST k existující tabulce v postgres 11

Citát z manuálu

Nemůžete tedy změnit existující nerozdělenou tabulku na dělenou tabulku.

Musíte vytvořit novou tabulku (s jiným názvem), která bude rozdělena na oddíly, vytvořit všechny potřebné oddíly a poté zkopírovat data ze staré tabulky do nové rozdělené tabulky.

Něco jako:

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

Poté vytvořte oddíly:

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

Poté zkopírujte data:

insert into clients_partitioned
select *
from clients;

Jakmile to uděláte, můžete starou tabulku zrušit a přejmenovat novou:

drop table clients;
alter table clients_partitioned rename to clients;

Nezapomeňte znovu vytvořit své cizí klíče a indexy.



  1. Funkce MySQL SUM ve více spojeních

  2. Jak používat funkci Coalesce v Oracle

  3. Proč vnější pořadí podle nefunguje správně?

  4. Vrácení sady výsledků