Re: Bloqueo registros

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Juan Carlos Del Rio <juancarlos(dot)delrio(at)tecnosoft(dot)com(dot)co>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Bloqueo registros
Date: 2004-08-09 16:40:27
Message-ID: 20040809164027.GA6112@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Mon, Aug 09, 2004 at 08:12:58AM -0500, Juan Carlos Del Rio wrote:
> Hola Colisteros.
>
> Esta preguinta es sencilla, espero que la respuesta lo sea.
>
> ¿ Como Puedo Bloquear un registro sin que se me desbloquee al terminar
> la transacción?

Imposible.

Lo que podrias hacer es mantener una tabla de bloqueos; cuando quieres
bloquear, insertas en la tabla, y eliminas al desbloquear. Ojo con la
visibilidad con transacciones concurrentes -- la nueva tupla no se va a
ver hasta que la transaccion que inserta esta comprometida. Sospecho
que para eso podrias usar LOCK TABLE, o aislacion SERIALIZABLE.

Ojo cuando un usuario bloquee y se vaya a tomar un cafe ...

En Postgres hay "locks de usuario" que cruzan los limites de las
transacciones, pero tienes que usarlos dentro de una misma conexion. Si
usas conexiones persistentes o si quieres mantener el lock mas alla de
un script PHP no va a funcionar.

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Lo esencial es invisible para los ojos" (A. de Saint Exúpery)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2004-08-09 16:47:28 Re: Bloqueo registros
Previous Message Leonel Nunez 2004-08-09 13:15:19 Re: Bloqueo registros