On Thu, Jul 3, 2014 at 5:10 PM, Bruno Silva <bemanuel...@gmail.com> wrote:
> begin; > CREATE TABLE base.filho_2013 (LIKE base.pai INCLUDING ALL) INHERITS > (base.pai); > ALTER TABLE base.filho_2013 no inherit base.pai; > INSERT INTO base.filho_2013 select * from base.pai WHERE dta between > '2013-01-01 00:00:00' and '2013-12-31 23:59:59'; > DELETE FROM base.pai where dta BETWEEN '2013-01-01 00:00:00' and > '2013-12-31 23:59:59'; > ALTER TABLE base.filho_2013 inherit base.pai; > ALTER TABLE base.filho_2013 ADD CONSTRAINT filho_check_2013 CHECK ( dta > between '2013-01-01 00:00:00' AND '2013-12-31 23:59:59' ); > COMMIT; > Primeiro, não precisa de colocar o INHERIT, tirar (ALTER TABLE ... NO INHERIT) e depois colocar novamente (ALTER TABLE ... INHERIT). Para deletar os dados *somente* da tabela pai, você pode usar o ONLY: DELETE FROM ONLY(base.pai) where dta BETWEEN '2013-01-01 00:00:00' and '2013-12-31 23:59:59'; Segundo, você esqueceu de adicionar uma check constraint nas tabelas filhas para que o constraint exclusion funcione: ALTER TABLE base.filho_2013 ADD CHECK(dta BETWEEN '2013-01-01 00:00:00' and '2013-12-31 23:59:59'); Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral