Re: Facturas y detalles ,nextval, currval, setval

From: Jaime Casanova <systemguards(at)yahoo(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Facturas y detalles ,nextval, currval, setval
Date: 2005-01-21 19:14:30
Message-ID: 20050121191430.34444.qmail@web50009.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Patolin . 2005-01-21 19:25:14 RE: Sobre PgAdmin III
Previous Message Alvaro Herrera 2005-01-21 19:13:25 Re: Sobre PgAdmin III