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.