Olá Pessoal,
Envie um script de um SUPOSTO BUG do postgres na lista de BUGS do postgres.
Tom Lane me respondeu que isso é normal, porque eu estou destruindo o registro 
antes do DELETE.
Eu particularmente não concordo porque eu acho que a integridade sempre deveria 
ser preservada mesmo em um erro de programação.Não concordo em ficar orfãos os 
registros.
Pergunto se voçês  concordam com isso e o que acham ?
link para resposta do TOM LANE: 
http://archives.postgresql.org/pgsql-bugs/2012-03/msg00108.php
Muito obrigado a todos.
Segue abaixo o SCRIPT.
-----------------------------------------------------------------------------------------------------------
create table mestre (chave serial primary key, descricao varchar(50));
create table detalhe (chave serial primary key,                       mestre 
integer references mestre(chave) ON DELETE CASCADE,                       valor 
numeric);
CREATE OR REPLACE FUNCTION ftrig_detalhe()  RETURNS trigger AS$BODY$begin 
return null;end;$BODY$  LANGUAGE 'plpgsql' VOLATILE;
insert into mestre (chave, descricao) values (1, 'TESTE');insert into detalhe 
(chave, mestre, valor) values (1, 1, 10);select * from detalhe d left join 
mestre m on m.chave = d.mestre;delete from mestre where chave = 1;select * from 
detalhe d left join mestre m on m.chave = d.mestre;
CREATE TRIGGER tdetalhe  before DELETE  ON detalhe  FOR EACH ROW  EXECUTE 
PROCEDURE ftrig_detalhe();
insert into mestre (chave, descricao) values (1, 'TESTE');insert into detalhe 
(chave, mestre, valor) values (1, 1, 10);select * from detalhe d left join 
mestre m on m.chave = d.mestre;delete from mestre where chave = 1;select * from 
detalhe d left join mestre m on m.chave = d.mestre;
--------------------------------------------------------------------------------------------------------


Claudio Oliveira http://www.msisolucoes.com.br                                  
  
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Reply via email to