Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

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

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group