Re: Manejo de secuencias dentro de transacciones

From: Horacio Miranda <hmiranda(at)gmail(dot)com>
To: Lennin Caro <lennin(dot)caro(at)yahoo(dot)com>
Cc: Alvaro Herrera <alvherre(at)commandprompt(dot)com>, "Lorena Gpe(dot) M(dot) Osorio" <peque35(at)gmail(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Manejo de secuencias dentro de transacciones
Date: 2010-10-14 20:58:17
Message-ID: AANLkTi=hO82h6_v_3zrJGjUZsCtB1UyVDA41QpdxZa8+@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Me parece que la unica forma para evitar ese problema es un proceso unico
(algo como crontab) que tome las facturas o notas de venta y las procese ya
que como dice Alvaro, si nextval no debe ser usado para ese proposito, debe
ser por la concurrencia, no puede evitar la concurrencia en la generación de
facturas, pero si en la asignación del numero de factura centralizando en un
proceso unico autoejecutable, ignoro cual es la mejor solucion para hacer
eso, pero deberia ser ese camino el correcto... vas a tener que meter mano
en el codigo.

2010/10/15 Lennin Caro <lennin(dot)caro(at)yahoo(dot)com>

> --- On *Thu, 10/14/10, Alvaro Herrera <alvherre(at)commandprompt(dot)com>* wrote:
>
>
> From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
> Subject: Re: [pgsql-es-ayuda] Manejo de secuencias dentro de transacciones
> To: "Horacio Miranda" <hmiranda(at)gmail(dot)com>
> Cc: "Lorena Gpe. M. Osorio" <peque35(at)gmail(dot)com>, "pgsql-es-ayuda" <
> pgsql-es-ayuda(at)postgresql(dot)org>
> Date: Thursday, October 14, 2010, 11:35 AM
>
> Excerpts from Horacio Miranda's message of jue oct 14 01:35:33 -0300 2010:
>
> > Saca el nextval del insert (ponelo como defecto DEFAULT NEXTVAL('sq')
> > , eso deberia resolver tu problema).
>
> Eso no resuelve el problema; nextval() sigue siendo invocado y dejando
> el "hueco" en la numeraci贸n.
>
>
> --
> 脕lvaro Herrera <alvherre(at)commandprompt(dot)com<http://mc/compose?to=alvherre(at)commandprompt(dot)com>
> >
> The PostgreSQL Company - Command Prompt, Inc.
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org<http://mc/compose?to=pgsql-es-ayuda(at)postgresql(dot)org>
> )
> Para cambiar tu suscripci髇:
>
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>
> Como dice Alvaro eso no e resuelve el problema. Puedes tener una tabla con
> un campo numeric el cual lo incrementas tu cuando lo creas conveniente
>
> algo asi
>
> Haces un select de la tabla Contador, obtiene el valor actual del campo y
> haces un lock de la tabla
> Comienza a trabajar con tu transacciones en tu bloque
> Si todo resulta le sumas uno al valor de la tabla tabla contador
> sueltas el lock
> Si no resulta solo sueltas y lock y comienza de nuevo
>
> Es una idea de como resolver, espero te ayude en algo
>
>
>

--
Saludos,
Horacio Miranda Aguilera.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Francisco Charo 2010-10-14 21:05:06 Re: crear base en latin1
Previous Message Alvaro Herrera 2010-10-14 19:22:51 Re: crear base en latin1