On 01-06-2012 00:45, Carlos Antônio Pereira wrote:
> Lembre-se, um roolback restaura o registro no seu estado anterior. Assim, em
> caso de falha, sua sequence também volta
> ao estado anterior.
>  
Não. Sequências nunca voltam ao valor anterior; senão não seriam sequências.
Sequências não seguem as regras de isolamento, ou seja, uma vez obtido um
valor outras transações podem observar essa mudança. Pense no caso:

sessão A: begin;
sessão A: insert into foo values(nextval('minha_sequencia'));

sessão B: begin;
sessão B: insert into foo values(nextval('minha_sequencia'));
-- aqui a sessão A pode ver que a sequência mudou o valor

sessão A: rollback;
-- aqui haverá um buraco na sequência deixado pela sessão A


-- 
   Euler Taveira de Oliveira - Timbira       http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a