Re: Facturas y detalles ,nextval, currval, setval

From: "manuel lamas" <manuel3w(at)hotmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Facturas y detalles ,nextval, currval, setval
Date: 2005-01-21 20:24:59
Message-ID: BAY103-F13CE2FAA00559258DAD97895820@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gracias Jaime:

En la opcion 2 que me das , me recomiendas de no usar una sequence en la
tabla facturas y de esa forma ir calculando cual es el numero siguiente
bloqueando la tabla ?

La opcion 1 no la entiendo muy bien. Que seria una tabla de numeraciones?

Atentamente

Manuel

>Se me ocurren dos opciones:
>1) una tabla de numeraciones. tendrias que bloquear la
>tabla con lock table al incrementar el numero asi
>otras transacciones no van a leer la tabla hasta que
>tu la liberes con commit o rollback.
>
>2) select numero from factura
> order by numero desc limit 1
>con eso obtienes el siguiente numero. de todas formas
>pienso que debes bloquear la tabla si quieres que no
>hayan espacios.
>

>From: Jaime Casanova <systemguards(at)yahoo(dot)com>
>To: pgsql-es-ayuda(at)postgresql(dot)org
>Subject: Re: [pgsql-es-ayuda] Facturas y detalles ,nextval, currval, setval
>Date: Fri, 21 Jan 2005 13:14:30 -0600 (CST)
>
> --- manuel lamas <manuel3w(at)hotmail(dot)com> escribió:
> > Hola lista:
> >
> > Quiero hacer una transaccion tipica para hacer una
> > factura de tipo:
> >
> >
> > BEGIN TRANSACTION ;
> >
> > INSERT INTO
> > FACTURAS(facturaid,etc...)VALUES(DEFAULT,etc....);
> >
> > INSERT INTO
> > DETALLES(detalleid,facturaid,etc...)VALUES
> > ( DEFAULT,currval 'facturas_facturaid_seq') , etc
> > ..);
> >
> > COMMIT TRANSACTION;
> >
> >
> > Por supuesto que si hay un error en la tabla
> > FACTURAS o en DETALLES todo
> > queda anulado.
> >
> > El problema es que va a quedar un numero inutilisado
> > en la columna facturaid
> > de la tabla FACTURAS y es molesto para un programa
> > de contabilidad.
> >
> > Busque en los viejos mensages de la lista en
> > espanol,ingles y frances.
> > Encontre gente con el mismo problema que yo pero
> > ninguna respuesta terrible.
> >
>Se me ocurren dos opciones:
>1) una tabla de numeraciones. tendrias que bloquear la
>tabla con lock table al incrementar el numero asi
>otras transacciones no van a leer la tabla hasta que
>tu la liberes con commit o rollback.
>
>2) select numero from factura
> order by numero desc limit 1
>con eso obtienes el siguiente numero. de todas formas
>pienso que debes bloquear la tabla si quieres que no
>hayan espacios.
>
>Atentamente,
>Jaime Casanova
>
>_________________________________________________________
>Do You Yahoo!?
>Información de Estados Unidos y América Latina, en Yahoo! Noticias.
>Visítanos en http://noticias.espanol.yahoo.com
>
>---------------------------(fin del mensaje)---------------------------
>TIP 5: ¿Has leído nuestro extenso FAQ?
>
> http://www.postgresql.org/files/documentation/faqs/FAQ.html

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message sandrigo.lezcano 2005-01-21 20:33:55 Re: Para los de PowerBulider de la lista
Previous Message Jaime Casanova 2005-01-21 20:18:44 Re: Sobre PgAdmin III