From: | José Fermín Francisco Ferreras <josefermin54(at)hotmail(dot)com> |
---|---|
To: | Neil Peter Braggio <pbraggio(at)gmail(dot)com>, postgres <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: select for update |
Date: | 2007-09-20 18:40:36 |
Message-ID: | BAY116-W35380688A08A2B3E3BE1E2C6BA0@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Gracias por tu respuesta Neil, ahora lo veo más claro!!
Muchas Gracias!!
<html><div>ing. José Fermín Francisco Ferreras <BR>San Francisco de Macorís, Rep. Dom. <BR></div></html>
> Date: Wed, 19 Sep 2007 12:45:42 -0400
> From: pbraggio(at)gmail(dot)com
> To: pgsql-es-ayuda(at)postgresql(dot)org
> Subject: Re: [pgsql-es-ayuda] select for update
>
> 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.
> --
> TIP 7: no olvides aumentar la configuración del "free space map"
_________________________________________________________________
Exprésate - diseña tu página de inicio de Live.com como más te guste.
http://www.live.com/getstarted
From | Date | Subject | |
---|---|---|---|
Next Message | Guillermo Muñoz | 2007-09-20 18:44:32 | Re: URGENTE |
Previous Message | Guillermo Muñoz | 2007-09-20 18:37:19 | Re: timestamp out of range |