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
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 |