2013/5/7 Flavio Henrique Araque Gurgel <[email protected]>

>
> Utilize SELECT... FOR UPDATE
> Ele foi feito pra isso.
>
> Uma outra transação concorrente vai conseguir "ler", fazer um SELECT
> simples na mesma linha, mas não vai conseguir fazer outro SELECT... FOR
> UPDATE.
>
> Simples assim. Quando um SELECT... FOR UPDATE falhar, você tenta pegar
> outra linha.
>
>
É isso ai... e complementando o que o Flávio e os demais já falaram, vc
pode usar a cláusula NOWAIT para que o SELECT gere um erro (excessao) caso
nao consiga obter o lock devido a outra transacao estar usando o mesmo... e
dai esse erro vc pode tratar na sua app... senao ele vai ficar aguardando a
outra sessao liberar...

Pode usar assim:

SELECT ... FOR UPDATE NOWAIT;

Att,

-- 
Fabrízio de Royes Mello
Consultoria/Coaching PostgreSQL
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
>> Twitter: http://twitter.com/fabriziomello
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a