Re: [Pgsql-ayuda] Cabecera - Detalle de factura

From: Alfonso Andaur <aandaur(at)yahoo(dot)com>
To: Manuel Infante Ruiz <manri2003(at)hotmail(dot)com>
Cc: Pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: [Pgsql-ayuda] Cabecera - Detalle de factura
Date: 2003-03-13 12:59:38
Message-ID: 20030313125938.26014.qmail@web13407.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

--- Manuel Infante Ruiz <manri2003(at)hotmail(dot)com>
escribió: >
>
>
>
> Necesito almacenar la cabecera y detalle de
> facturas.
>
> Lógicamente dividida en dos tablas. El número de
> factura es una
> secuencia. ¿¿Cómo me quedo en una transacción con la
> secuencia de la
> cabecera para asignarla al campo relacionado con la
> tabla detalle??

paso 1: Crear la secuencia

-- Sequence: folio_seq
CREATE SEQUENCE folio_seq INCREMENT 1 MINVALUE 1
MAXVALUE 9223372036854775807 CACHE 1;
SELECT setval('folio_seq', 1);

paso 2: Crear la tabla cabecera con el folio asociado
a la secuencia (usando nextval en valor por defecto)

CREATE TABLE Cabecera_Factura (
FolioFactura INT4 DEFAULT
nextval('"folio_seq"'::text) NOT NULL,
...
...
...
);

paso 3: Crear la tabla detalle con el folio asociado a
la secuencia (usando currval en valor por defecto)

CREATE TABLE Detalle_Factura (
FolioFactura INT4 DEFAULT
currval('"folio_seq"'::text) NOT NULL,
NumeroLinea NUMERIC(3) NOT NULL,
...
...
...
);

NOTA 1: Al insertar en la cabecera o en el detalle no
debes intentar darle un valor al folio

NOTA 2: No debes usar autocommit ... debes estar en
transacción al grabar la cabecera y el detalle

NOTA 3: El currval te devuelve el último folio
asignado en el proceso activo ... no ve los nextval
que puedan estar haciendo otros usuarios. En cambio,
si haces nextval ... este siempre incrementará ... sin
importar que hagas un rollback. Por lo tanto, debes
estar conciente que puedes folios perdidos.

Suerte.

Alfonso Andaur L.
>
> Saludos a la lista¡¡
>
>
_________________________________________________________________
> Charla con tus amigos en línea mediante MSN
> Messenger:
> http://messenger.microsoft.com/es
>
> _______________________________________________
> Pgsql-ayuda mailing list
> Pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
>
http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda

_________________________________________________________
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

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Antonio Castro 2003-03-13 16:00:43 Re: [Pgsql-ayuda] Cabecera - Detalle de factura
Previous Message Manuel Infante Ruiz 2003-03-13 12:33:43 [Pgsql-ayuda] Cabecera - Detalle de factura