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)
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 |