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

Responder a