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