From: | Kernel <jucabapa(at)gmail(dot)com> |
---|---|
To: | Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: modos de bloqueo |
Date: | 2016-04-21 12:29:43 |
Message-ID: | 5718C7B7.4060508@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El 20/04/2016 a las 22:56, Jaime Casanova escribió:
> 2016-04-19 13:15 GMT-05:00 Francisco Olarte <folarte(at)peoplecall(dot)com>:
>> 2016-04-19 19:55 GMT+02:00 Kernel <jucabapa(at)gmail(dot)com>:
>>> Voy a hacer un proceso de facturacion y necesito asegurar que nadie pueda
>>> facturar en el mismo momento que yo.
>>> Necesito bloquear una tabla de manera que nadie pueda hacer un insert,
>>> update o delete, solo pueda leer de la tabla pero nada mas hasta que termine
>>> el trabajo.
>>>
>>> ¿CUAL SERIA EL TIPO DE BLOQUEO MAS ADECUADO?
>>
>> Buff, probablemente LOCK EXCLUSIVE, que da conflicto con todo menos
>> con el select si no recuerdo mal, mirando ademas el nivel de
>> aislamiento que necesitas.
>>
>
> Bastaría con LOCK SHARE (evita modificaciones concurrentes).
>
> Ahora, si lo que quieres es evitar que te incrementen el número
> secuencial, debería ser suficiente
> agregar un FOR UPDATE al cursor llamado albaranes.
>
> Por cierto, esto es 4gl?
>
Si un usuario lanza un proceso para generar 200 facturas , no puedo
permitir que otro usuario intercale un numero de factura, pero tampoco
quiero que otro usuario lance otro proceso y se le quede bloqueado hasta
que termine el otro usuario (ya conocemos a los usuarios..).
Estoy pensando en bloquear a nivel de tabla,crear una tabla en la que
contenga proceso,empresa,serie
Cuando un proceso se inicie se debe de bloquear el registro con un
select for update, pero antes debe de comprobar que no lo ha bloqueado
otro usuario y asi poder mandar un aviso al usuario de que lo intente
mas tarde.
¿hay alguna manera de saber si un registro esta bloqueado y evitar la
espera?
Gracias
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Hellmuth Vargas | 2016-04-21 13:03:38 | Re: modos de bloqueo |
Previous Message | Jaime Casanova | 2016-04-21 02:12:38 | Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Separación lógica de tablas, agrega rendimiento? |