Em 04/04/2013 11:19, Flavio Henrique Araque Gurgel escreveu:

Talvez você esteja com uma questão de concorrência. Verifique se o erro realmente aconteceu na tabela ind_03_03_02_02_a1 e certifique-se disso.

Pergunto: ao inserir, de onde você retira o valor id_movimento (que me parece ser a sua PK ou pelo menos índice único)?

Eu faria um teste, colocando dentro do IF que testa a existência um:
RAISE EXCEPTION
Pra logar o que realmente está acontecendo.
Você pode colocar RAISE EXCEPTION ou RAISE NOTICE em vários pontos da sua função pra tentar "debugar".

O que pode haver é uma transação concorrente comitar o valor antes da sua função terminar, porém após o teste. Isso é possível em caso de isolamento READ COMMITTED.
Flávio, é uma UNIQUE.
Acho que resolvestes a charada, devers er o isolamento READ COMMITTED.
Vou seguir tua sugestão, vou logar para ver o que tá ocorrendo.

Muito obrigado.


--
Irineu Raymundo
Programador/Consultor Técnico
Senda Engenharia de Dados Ltda.

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a