Estamos ai pra isso... Precisando, e eu podendo ajudar... [ ]'s
-- Charly Frankl http://javadevilopers.blogspot.com/ [email protected] Linux user #391083 2009/8/12 MIGUEL JOSE DE LIMA <[email protected]> > OI, Charly, > Fiz os testes aqui, e é como vc passou. Realmente ajuda! > Valeu, Muito Obrigado! > > > 2009/8/12 Charly Frankl <[email protected]> > >> Bom dia Leandro... >> >> Concordo com você que seja um tanto quanto "decepcionante" você não >> conseguir um lock para consultas, mas como tratado, faz parte do modelo >> relacional. Também tive essa dificuldade no início, quando vim trabalhar com >> bancos relacionais. >> >> Bem, mas como comentei, uma forma de "burlar" esta restrição é utilizar a >> instrução "FOR UPDATE NOWAIT". Segue um exemplo: >> >> Em uma seção do psql (pgadmin, aplicação da empresa, etc...) aberta eu >> realizo um select: >> >> begin; >> select * from municipio where cod_uf = 43 FOR UPDATE NOWAIT; >> >> (Observe que eu não fechei a transação...) >> >> Se em outra seção aberta eu realizar o mesmo select : >> begin; >> select * from municipio where cod_uf = 43 FOR UPDATE NOWAIT; >> >> O banco simplesmente me retorna a mensagem: >> ERROR: could not obtain lock on row in relation "municipio" >> >> Bem... É uma forma de burlar o problema a princípio, mas como já discutido >> aqui, o melhor a fazer (ao menos a médio prazo) é rever a aplicação. Depois >> de revista, ai sim você pode optar pelo melhor modelo. Utilizar o FOR UPDATE >> NOWAIT em consultas de atualização não é um erro, mas utilizá-lo >> indiscriminadamente pode trazer transtornos e "efeitos colaterais" não >> desejados. Todavia, como cada caso exige uma solução específica, fica ai a >> sugestão. >> >> >> Espero ter ajudado. >> >> Att, >> >> >> >> -- >> Charly Frankl >> http://javadevilopers.blogspot.com/ >> [email protected] >> Linux user #391083 >> >> >>
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
