Olá,

Se permitem participar

Em 4 de abril de 2013 11:35, Irineu <[email protected]> escreveu:

> 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.
>>
>
Se me permitem participar. READ COMMITED é o nível de isolamento do
PostgreSQL, logo você só não trabalha com ele se você setou o nível
SERIALIZABLE.


Este tipo de problema acontece mesmo. Um jeito simples de você simular
isso, é abrir duas transações em sessões distintas e fazer o teste. Você
consegue fazer isso e nos postar o resultado?


>  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].**org.br<[email protected]>
> https://listas.postgresql.org.**br/cgi-bin/mailman/listinfo/**pgbr-geral<https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral>
>


Abraços
-- 
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a