| 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: | Whole Thread | Raw Message | 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 |