Re: Transacciones en PG
- From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
- To: Guillermo Munoz <munozgb(at)gmail(dot)com>
- Cc: "Ing. Eris J. Gomez" <eris_jose(at)hotmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
- Subject: Re: Transacciones en PG
- Date: Wed, 30 Apr 2008 10:39:13 -0400
- Message-id: <20080430143913.GD5622@alvh.no-ip.org> <text/plain>
Guillermo Munoz escribió:
> Eris, tengo entendido que dentro de una transacción no hay bloqueos de
> secuencias , por lo que otro usuario concurrente te puede ocasionar el
> problema que describís.
No hay bloqueos de secuencias, pero un usuario concurrente no te puede
causar ningun problema porque las llamadas concurrentes a nextval()
generan numeros distintos, como tu mismo dices mas abajo:
> pero si dentro de una transaccion o session (como me aclararon)
> realizas nextval(seq) y si otro usuario realiza nextval(seq) al mismo
> tiempo los valores seran diferentes
> por lo que se el primer usuario raliza un rollback y el segundo aplica
> los cambios en las tablas, ahi vas a tener un salto en la secuencia.
> tambien tene en cuanta que si realizas un rollback la/s no vuelven a
> su estado original, se incrementaron.
Correcto, es posible que los numeros insertados en la tabla no sean
consecutivos. El uso de secuencia solo garantiza que los numeros son
_unicos_ (es decir no se repiten).
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
Home |
Main Index |
Thread Index