On 05-12-2013 16:04, José Mello Júnior wrote:
Preciso pegar um próximo registro antes de qualquer outro terminal como
se fosse uma sequência. Qual o modo de isolamento mais recomendável?
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
Esse?
Claro, depois dou um SELECT FOR UPDATE altero o status do registros e
logo comito a transação.
Há algum tempo implementei o que vc necessita, veja em [1].
Depois de vc rodar o "my_sequence.sql" em sua base de dados vc utiliza
da seguinte forma:
fabrizio=# SELECT create_my_sequence('seq');
create_my_sequence
--------------------
(1 row)
fabrizio=# SELECT nextval_my_sequence('seq');
nextval_my_sequence
---------------------
1
(1 row)
fabrizio=# SELECT nextval_my_sequence('seq');
nextval_my_sequence
---------------------
2
(1 row)
Vc pode testar em 2 sessoes abertas e executar dentro de uma transacao
para testar.
Att,
[1] https://dl.dropboxusercontent.com/u/4342654/my_sequence.tar.bz2
--
Fabrízio de Royes Mello 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