Ao executar os scripts a baixo ocorre o segunte erro: WARNING: terminating connection because of crash of another server processDETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.Isso *não* é um bug. Há várias maneiras de derrubar o postgres; e, essa é mais uma delas.UPDATE pg_trigger SET tgdeferrable = TRUE, tginitdeferred = TRUE;Por que você está fazendo isso? Nem todas os gatilhos são postergáveis (aka _deferrable_). Assim, você está definindo como postergáveis os gatilhos que fazem o cascateamento, que por sua vez, está levando a queda do postgres. Talvez seja viável a prevenção de tal cenário mas ... Sugiro que utilize a sintaxe (DEFERRABLE and INITIALLY DEFERRED) para definir se os gatilhos são postergáveis ou não; só mexa no catálogo quando tiver certeza que o que você está fazendo é seguro.
Correto Euler sua sugestão matou meu problema (fico te devendo uma cerveja), eu estava mexendo de forma errada na pg_trigger, fiz os testes e funcionou para todas as situações que temos aqui, demorei para responder porque estava executando os testes. Mas com essa solução fiquei com uma duvida, fiz os testes com a contraint (a)DEFERRABLE INITIALLY DEFERRED e (b)INITIALLY DEFERRED, nos dois modos funcionou, fui ler a documentação e ai que fique na duvida. Pelo que eu entendi a opção (a) ficou redundante a opção (b), não entendi a diferença entre as duas. Obrigado
<<attachment: rogeriogrando.vcf>>
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
