Re: INSERT MULTIPLE CON TRANSACCIONES...

From: "enzo ana" <enzoana(at)hotmail(dot)com>
To: systemguards(at)yahoo(dot)com
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: INSERT MULTIPLE CON TRANSACCIONES...
Date: 2004-11-08 17:29:43
Message-ID: BAY22-F2aatao8KK8Zt0003ed86@hotmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Estimado Jaime:
Me solucionaste el error que tenia. Al insertar la tuplas estaba obteniendo
un identificador de objeto y no el codigo que se autogeneraba. He cambiado
la estrategia y ahora he creado una secuencia para generar los codigo la
cual la utilizo haciendo un SELECT nextval('nombreSecuencia'). Esto si me
permite realizar de manera correcta mi trabajo de insersion.
Muchas gracias por el aporte.

Enzo.

>From: Jaime Casanova <systemguards(at)yahoo(dot)com>
>To: pgsql-es-ayuda(at)postgresql(dot)org
>Subject: Re: [pgsql-es-ayuda] INSERT MULTIPLE CON TRANSACCIONES...
>Date: Mon, 8 Nov 2004 10:53:52 -0600 (CST)
>
> --- enzo ana <enzoana(at)hotmail(dot)com> escribió:
> > Gente:
> > Estoy realizando una aplicacion web con JSP en la
> > cual debo hacer una insersion que implica hacer
> > varios insert en varias tablas. Esta insercion
> > debe ser "atomica" por lo cual la realizo abriendo
> > una transaccion y ante cualquier fallo realizo un
> > rollback.
>
>Una practica MUY recomendable.
>
> > Cuando realizo el primer insert obtengo un long el
> > cual debo utilizarlo como clave foranea en las demas
>
> > tuplas que se insertan.
>
>Es obvio que se trata de un esquema cabecera -
>detalle, o algo muy similar a eso.
>
>La primera pregunta que te hare es: ¿De donde obtienes
>ese long?, ¿te lo devuelve automaticamente el postgres
>al insertar la fila? si es asi, el problema es que ese
>long que te devuelve es el oid (Object IDentifier) de
>la fila (un numero que unico que genera postgres a
>cada fila) y no el codigo de la cabecera que
>ingresastes.
>
>Puedo estar equivocado por eso seria mejor que
>mostraras el codigo que estas usando para estar
>seguros, tambien ayudanos con la definicion de tus
>tablas y los constraints FK's para ver si las
>opiniones de los otros son correctas o no?
>
> > El problema es que obtengo una excepcion por
> > violacion de integridad referencial porque el codigo
>
> > de la clave foranea (el
> > cual obtuve al hacer el
> > primer insert) que intento insertar en el segundo
> > query no se encuentra en la base de datos hasta que
> > se realice el commit de la transaccion.
>
>NO, dentro de la transaccion todo lo que TU hagas es
>visble para ti. desde tu punto de vista eso esta
>grabado.
>
> > Como puedo salvar esta situacion para que se respete
> > la integridad referencial?
>
>Postgres lo hace por ti, con los constraints definidos
>obviamente.
>
> > Gracias y disculpen las molestias.
>
>Ninguna molestia.
>
>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
>
>---------------------------(end of broadcast)---------------------------
>TIP 4: No hagas 'kill -9' a postmaster

_________________________________________________________________
Charla con tus amigos en línea mediante MSN Messenger:
http://messenger.latam.msn.com/

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message MozStyle @ gmx 2004-11-08 17:59:08 Re: INSERT MULTIPLE CON TRANSACCIONES...
Previous Message Manuel Sugawara 2004-11-08 17:08:16 Re: Fw: Triggers con argumentos