sql >> Database >  >> RDS >> PostgreSQL

Koppel partitie LIST aan bestaande tabel in postgres 11

Citaat uit de handleiding

U kunt dus een bestaande niet-gepartitioneerde tabel niet wijzigen in een gepartitioneerde tabel.

U moet een nieuwe tabel maken (met een andere naam) die is gepartitioneerd, alle benodigde partities maken en vervolgens de gegevens van de oude tabel naar de nieuwe, gepartitioneerde tabel kopiëren.

Iets als:

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

Maak vervolgens de partities:

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

Kopieer vervolgens de gegevens:

insert into clients_partitioned
select *
from clients;

Zodra dat is gebeurd, kunt u de oude tabel laten vallen en de nieuwe tabel hernoemen:

drop table clients;
alter table clients_partitioned rename to clients;

Vergeet niet uw externe sleutels en indexen opnieuw te maken.



  1. Welke manieren zijn er om informatie over een anonieme/gastgebruiker op te slaan in een database?

  2. XML opslaan in een database voor flexibele inhoud

  3. is er een mysql-functie om html-entiteiten te decoderen?

  4. hoe te importeren uit MS Excel in MYSQL DB