Por lo tanto, no puede cambiar una tabla no particionada existente a una tabla particionada.
Debe crear una nueva tabla (con un nombre diferente) que esté particionada, crear todas las particiones necesarias y luego copiar los datos de la tabla anterior a la nueva tabla particionada.
Algo como:
create table clients_partitioned
(
.... all columns ...
)
PARTITION BY LIST (client_id);
Luego crea las particiones:
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);
Luego copie los datos:
insert into clients_partitioned
select *
from clients;
Una vez hecho esto, puede soltar la tabla anterior y cambiar el nombre de la nueva tabla:
drop table clients;
alter table clients_partitioned rename to clients;
No olvide volver a crear sus índices y claves foráneas.