| From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
|---|---|
| To: | Hensa <hensa22(at)yahoo(dot)es> |
| Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
| Subject: | Re: RV: Re: una duda sobre funciones |
| Date: | 2006-10-16 15:24:17 |
| Message-ID: | 20061016152417.GF18392@alvh.no-ip.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-es-ayuda |
Hensa escribió:
> gracias por la respuesta,
> pero hay alguna manera de bloquear una tabla para hacer un update,
> y cuando un segundo usuario quiera hacer algun select,insert o delete a la tabla
> espera a que se desbloque la tabla para que el segundo usuario pueda aplicar una de los 3 sentencias sin que salga ningun error, solamente esperar a que se desbloquee
Que tal si lees la primera parte de mi respuesta abajo. No es tan
dificil.
> Alvaro Herrera <alvherre(at)commandprompt(dot)com> escribió: Hensa escribió:
> > una pregunta sobre este tema, y si esta bloqueada la tabla y otro
> > usuario quiere acceder a ella a traves de un Select o quiere hacer un
> > Update o delete.
>
> > Que pasa en ese caso, devuelve algun error el postgres o espera a que
> > se desbloquee la tabla?
>
> SELECT retorna de inmediato, UPDATE y DELETE se bloquean.
>
> Si quieres que no se bloquee un UPDATE sino que retorne un error, puedes
> hacer antes un SELECT FOR UPDATE NOWAIT para obtener el lock, seguido
> del UPDATE, el cual se garantiza que no se bloqueara. (Si el SELECT FOR
> UPDATE NOWAIT no puede obtener el lock, lanzara un error).
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Miguel Angel . | 2006-10-16 17:49:04 | Extraño error |
| Previous Message | Hensa | 2006-10-16 15:21:56 | RV: Re: una duda sobre funciones |