PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Dołącz LISTĘ partycji do istniejącej tabeli w postgresie 11

Cytat z podręcznika

Nie można więc zmienić istniejącej tabeli niepartycjonowanej na tabelę partycjonowaną.

Musisz utworzyć nową tabelę (o innej nazwie), która jest podzielona na partycje, utworzyć wszystkie niezbędne partycje, a następnie skopiować dane ze starej tabeli do nowej, podzielonej na partycje tabeli.

Coś takiego:

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

Następnie utwórz partycje:

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

Następnie skopiuj dane:

insert into clients_partitioned
select *
from clients;

Gdy to zrobisz, możesz usunąć starą tabelę i zmienić nazwę nowej tabeli:

drop table clients;
alter table clients_partitioned rename to clients;

Nie zapomnij ponownie utworzyć kluczy obcych i indeksów.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy unia postgres gwarantuje kolejność wykonywania podczas wywoływania funkcji ze skutkami ubocznymi?

  2. Zepsuty postgres Homebrew

  3. Niezdefiniowane połączenie db z knex

  4. Liczba PostgreSQL ile razy podciąg występuje w tekście

  5. jak zwrócić tabelę temp z funkcji postgres?