From: | Carlos Joaniquet <cjtambur(at)yahoo(dot)es> |
---|---|
To: | Jaime Casanova <jaime(dot)casanova(at)2ndquadrant(dot)com> |
Cc: | Kernel <jucabapa(at)gmail(dot)com>, "Ivan Perales M(dot)" <ivan(dot)perales(at)gmail(dot)com>, Hellmuth Vargas <hivs77(at)gmail(dot)com>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: modos de bloqueo |
Date: | 2016-04-21 19:59:10 |
Message-ID: | C5BEDD50-A8E9-4F1A-9771-63175620E94A@yahoo.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Nosotros hemos creado una tabla de punteros con tipo factura, ejercicio y número y lo controlo todo con un disparador. Nos funciona bien.
Carlos Joaniquet Tamburini
> El 21 abr 2016, a las 18:36, Jaime Casanova <jaime(dot)casanova(at)2ndquadrant(dot)com> escribió:
>
> 2016-04-21 11:06 GMT-05:00 Kernel <jucabapa(at)gmail(dot)com>:
>>
>> Las facturas tienen que ser correlativas , sin saltos y por supuesto la
>> fecha de una factura no puede ser menor que una con numero superior.
>>
>> Voy a utilizar el select for update con la clausula nowait a una tabla que
>> voy a crear para el proceso, asi puedo bloquear por empresa,serie.
>> No voy a hacer el select for update a la propia tabla de series, por que en
>> el mismo registro esta el ultimo numero de
>> factura,albaran,pedido,presupuesto, orden de fabricacion y bloquearia muchos
>> procesos.
>
> Creo que tienes algo mal en tu diseño. Si luego necesitas por ejemplo
> "orden de importacion" u "orden de compra" tendrÃas que alterar la tabla para
> crear nuevas columnas, no?
>
> Además como menciono Ivan basta que alguien quiera hacer muchas facturas
> o una muy larga para que bloquee al resto.
>
>> Voy a leer el ultimo numero de factura al principio, lo incrementare en
>> memoria y solo escribiré en el fichero de series al final, justo antes del
>> commit, creo que es la mejor solución ..
>
> Esto también parece una mala idea, si el número no esta pre impreso
> en la hoja y puedes simplemente tomar un número hazlo siempre al
> *final* del proceso, asà el tiempo de bloqueo es mÃnimo (también deberÃas
> usar la fecha al final del proceso, usa clock_timestamp() en lugar de now())
>
> --
> Jaime Casanova www.2ndQuadrant.com
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
-
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 | Martín Díaz | 2016-04-22 17:03:49 | Réplica BDR bloqueada por consulta DLL |
Previous Message | Alvaro Herrera | 2016-04-21 19:57:37 | Re: modos de bloqueo |