Re: bloqueos

From: Marcelo Espinosa Alliende <marcelo(at)ubiobio(dot)cl>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: bloqueos
Date: 2004-05-06 14:16:36
Message-ID: 1083852996.925.29.camel@tosh
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


una solución simple es hacer un SELECT FOR UPDATE el cual obtiene un
lock exclusivo a nivel de registros (rows).

Una vez que tienes asignado los locks respectivos, puedes hacer lo que
se te dé la gana con ellos (delete, update) y nadie puede intervenir
mientras la transacción no concluya... así garantizas la integridad.

el esquema es bien simpático, incluso puedes bloquear tablas completas
de este modo para realizar mantenciones en ellas, (tablas en explotación
-aplicar con cuidado... a veces los usuarios son sensibles :)

revisa la documentacion al respecto.

BEGIN TRANSACTION
SELECT cust_id FROM customer WHERE cust_id=2 FOR UPDATE
update/delete a gusto

COMMIT/ROLLBACK

On Thu, 2004-05-06 at 09:25, Alvaro Herrera wrote:
> On Thu, May 06, 2004 at 08:53:27AM -0300, Daniel Carlos Aguirre wrote:
> > Hola, estoy usando postgresql desde php, y se me presenta la siguiente duda
> > ¿tengo alguna manera de bloquear el registro que estan actualizando, para que
> > 2 o mas usuarios no modifiquen el mismo registro al mismo tiempo?
>
[....]

--
Marcelo Espinosa Alliende <marcelo(at)ubiobio(dot)cl>
Universidad del Bío-Bío

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message gaston t 2004-05-06 15:15:50 ayuda con java
Previous Message m eugenia barra m 2004-05-06 14:14:45 Re: Error en creación de base de