Hola Alvaro

Efectivamente, hice la prueba


create table public.llamadas_with_pklocal as select * from public.llamadas;
alter table public.llamadas_with_pklocal alter column id set not null;
alter table public.llamadas_with_pklocal alter column fecha set not null;
alter table public.llamadas_with_pklocal alter column uniqueid set not null;
alter table public.llamadas_with_pklocal alter column tipo_evento set not
null;

alter table public.llamadas_with_pklocal add primary key  (id, fecha);

checkpoint

CREATE TABLE public.llamadas_particion_pklocal
(
  id bigserial NOT NULL,
  fecha timestamp with time zone NOT NULL,
  uniqueid character varying(255) NOT NULL,
  tipo_evento character varying(255) NOT NULL,
  CONSTRAINT llamadas_particion_pklocal_pkey PRIMARY KEY (id,fecha)
)PARTITION BY RANGE(fecha);


checkpoint

/*
bash-4.1$ du  --max-depth=1
16      ./log
16      ./pg_logical
4       ./pg_commit_ts
1616756 ./base
28      ./pg_multixact
4       ./pg_serial
12      ./pg_subtrans
12      ./pg_notify
4       ./pg_tblspc
1900552 ./pg_wal
48      ./pg_stat_tmp
4       ./pg_stat
4       ./pg_replslot
4       ./pg_snapshots
4       ./pg_twophase
584     ./global
4       ./pg_dynshmem
12      ./pg_xact
3518128 .


*/


ALTER TABLE public.llamadas_particion_pklocal ATTACH PARTITION
public.llamadas_with_pklocal  FOR VALUES FROM ('2020-11-01 00:00:00' ) TO
('2021-03-30 23:59:59');
-- Query returned successfully with no result in 1.6 secs.

checkpoint


/*
bash-4.1$ du  --max-depth=1
16      ./log
16      ./pg_logical
4       ./pg_commit_ts
1616756 ./base
28      ./pg_multixact
4       ./pg_serial
12      ./pg_subtrans
12      ./pg_notify
4       ./pg_tblspc
1900552 ./pg_wal
48      ./pg_stat_tmp
4       ./pg_stat
4       ./pg_replslot
4       ./pg_snapshots
4       ./pg_twophase
584     ./global
4       ./pg_dynshmem
12      ./pg_xact
3518128 .


*/


Muchas Gracias!!!

El lun, 3 de may. de 2021 a la(s) 10:44, Alvaro Herrera (
alvhe...@alvh.no-ip.org) escribió:

> Hellmuth Vargas escribió:
> > Hola Avaro
> >
> > Hice el correspondiente laboratorio en una instancia dedicada de
> PostgreSQL
> > 11.11, uno con una tabla "padre" con primariy key definido y otra con
> tabla
> > "padre" sin el primary key, aqui los resultados
>
> Eh, me expresé mal (error de cafeína insuficiente). Lo que yo quería
> sugerir es que en la *partición* crearas el índice antes de hacer el
> ATTACH.  Eso lo puedes hacer con CONCURRENTLY.  Al momento de hacer
> ATTACH, el sistema va a detectar que el índice que necesita ya existe y
> entonces no necesita crearlo.  Eso sí, tiene que ser un índice con
> exactamente las mismas propiedades que el que está en la tabla padre.
>
> --
> Álvaro Herrera                            39°49'30"S 73°17'W
>


-- 
Cordialmente,

Ing. Hellmuth I. Vargas S.
Esp. Telemática y Negocios por Internet
Oracle Database 10g Administrator Certified Associate
EnterpriseDB Certified PostgreSQL 9.3 Associate

Reply via email to