Re: select for update

From: "Neil Peter Braggio" <pbraggio(at)gmail(dot)com>
To: postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: select for update
Date: 2007-09-19 16:45:42
Message-ID: a722ba580709190945i6f26c248p5464ce9244c99e9b@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Utilizar esta cláusula en una sentencia SELECT hará que los registros
retornados se bloqueen exclusivamente hasta que finalice la
transacción actual. Esto hará que dichas columnas no puedan ser
modificadas por otros usuarios concurrentes (diferentes transacciones)
mientras dure tú transacción.

Es de utilidad en casos en donde quieras hacer operaciones que
involucren conocimiento sobre los registros retornados, y no desees
que sean modificados mientras esta operación culmina.

Para hacer el bloqueo tú SELECT esperará todo lo necesario para poder
obtener el bloqueo sobre los registros (si no utilizas la opción
NOWAIT), luego este se mantendrá hasta que culmine la transacción. Si
utilizas NOWAIT se reportará una excepción si no se puede obtener el
bloqueo inmediatamente sobre los registros a retornar.

Un ejemplo:

BEGIN TRANSACTION;
SELECT * FROM foo;
.
.
.
UPDATE foo SET ......;
.
.
.
COMMIT TRANSACTION;

Luego de la instrucción SELECT ninguna otra transacción podrá hacer
modificaciones a los registros retornados. Al terminar la transacción
(COMMIT en este ejemplo) los registros retornados por el SELECT serán
desbloqueados.

Espero que esto te ayude a aclarar un poco el uso de esta cláusula
para que puedas volver a releer la documentación y entender claramente
su uso. Seguro contarás luego con una herramienta más dentro de tú
repertorio de soluciones ;-)

----
Neil Peter Braggio
pbraggio(at)gamil(dot)com

On 9/19/07, José Fermín Francisco Ferreras <josefermin54(at)hotmail(dot)com> wrote:
>
> Hola chicos y chicas , algunos d ustedes ha tenido experiencia en hacer
> select for update, estuve checando la documentación d postgresql 8.2.4 y no
> entendi bien el asunto, si algunos d ustedes podrian mandar un ejemplito
> para aclarar el asunto.
>
> Gracias por su tiempo!!
>
>
>
> <html><div>ing. José Fermín Francisco Ferreras
> <BR>San Francisco de Macorís, Rep. Dom.
> <BR></div></html>
>
> ________________________________
> Envía mensajes de correo electrónico directamente a tu blog con MSN. Carga
> chistes, fotografías y muchas otras cosas. Es gratis.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Neil Peter Braggio 2007-09-19 16:58:30 Re: ayuda con query por favor
Previous Message usuario anonimo 2007-09-19 16:35:43 Re: timestamp out of range