Pablo Souza Grigoletti <[EMAIL PROTECTED]> escreveu:
> Veja:
> http://www.postgresql.org/docs/8.1/interactive/functions-sequence.html
>
> SELECT currval('sua_sequencia');
>
> O PostgreSQL trata corretamente a atribuição de valores da sequencia
> nos acessos simultâneos.
>
> []s
> Osvaldo
Mas o q acontece se entre esse SELECT e o meu INSERT alguém der o
INSERT na tabela? Então vou pegar o valor "errado" no SELECT! Estou
certo?
Não, está errado.
O valor atribuido por um nextval e recuperado por um currval são consistentes dentro de cada sessão não entre sessões (o currval em uma sessão A recupera o valor atribuido pelo último nextval da sessão A, independente de quantos nextval tenham ocorrido neste interim em outras sessões).
Veja as questões 4.11.x em:
http://www.postgresql.org/docs/faqs.FAQ.html
particularmente a questão 4.11.3.
[]s
Osvaldo
Yahoo! doce lar. Faça do Yahoo! sua homepage.
_______________________________________________ Grupo de Usuários do PostgreSQL no Brasil http://www.postgresql.org.br
