Re: Ultimo Id

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: Mario Gonzalez <gonzalemario(at)gmail(dot)com>
Cc: Luis Fernando Curiel Cabrera <lcuriel(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ultimo Id
Date: 2005-11-22 20:36:04
Message-ID: c2d9e70e0511221236m5e6374f0wa5faea782bfd7d45@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 11/22/05, Mario Gonzalez <gonzalemario(at)gmail(dot)com> wrote:
> On 22/11/05, Alvaro Herrera <alvherre(at)commandprompt(dot)com> wrote:
> > Jaime Casanova escribió:
> > > On 11/22/05, Mario Gonzalez <gonzalemario(at)gmail(dot)com> wrote:
> > > > On 22/11/05, Luis Fernando Curiel Cabrera <lcuriel(at)gmail(dot)com> wrote:
> > > > > Pero funciona igual si el inser se ejecuta mientras esta en una transaccion?
> > > > >
> > > > El curval debe mostrar el ultimo valor de una secuencia. Ahora no
> > > > se si es necesario hacer un commit despues de un INSERT para notar
> > > > cambios en la secuencia. De todas formas esto lo saque de la
> > > > documentacion oficial
> > >
> > > No. La secuencia no se ve afectada por COMMIT ni por ROLLBACK
> > > Te va a regresar un valor valido siempre que primero hayas ejecutado
> > > nextval('seq') y no te hayas desconectado.
> >
> > Ojo que si haces "SELECT .. FROM secuencia" (que era lo que habias
> > mencionado al principio) te puede devolver cualquier cosa, por lo tanto
> > tienes que usar currval().
> >
> A ver si entendi, En el caso de que si hay varios usuarios
> conectados a una misma base de datos haciendo INSERT a alguna tabla
> especifica,.... el resultado de currval() podria ser diferente??
>
>

No. el resultado de currval siempre va a ser el correcto para ti...
Lo que Alvaro dice es que si en vez de usar currval haces "select *
from secuencia" te atienes a las consecuencias, en ese caso si podrias
obtener datos incorrectos desde el punto de vista de transaccion o
proceso...

si usas currval estas a salvo porque el se encarga de saber cual fue
el valor insertado por tu sesion (por eso es importante hacer notar
que solo sirve sino te has desconectado despues del nextval)...

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Martín Marqués 2005-11-22 20:45:59 Re: el parametro -i
Previous Message Mario Gonzalez 2005-11-22 20:30:44 Re: Ultimo Id