From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | Ruben Guinez <rubenvive(at)gmail(dot)com> |
Cc: | cristian daza <hyperionmago(at)hotmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: recuperar campo id |
Date: | 2005-12-09 14:01:00 |
Message-ID: | c2d9e70e0512090601t2429adao9661165409755847@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On 12/9/05, Ruben Guinez <rubenvive(at)gmail(dot)com> wrote:
> Pero este currval(), retorna el valor actual de la secuencia. Si yo quiero
> saber el valor que me dio a mi para mostrar al usuario de vuelta, pero
> resulta que justo otro usuario realizó otra acción que implicó incremento de
> la variable?. Ahora, si lo recupero -este currval()- dentro de la misma
> transacción, aunque otro usuario haya hecho ingresos, como está fuera del
> ámbito de mi transacción me devolverá el valor correcto?, es decir el que
> realmente usé yo para generar mi folio?. Lo pregunto, porque veo que las
> secuencias no responden a rollback, por lo tanto podría pensar también que
> no respetan la visibilidad dentro de las transacciones, y que aunque yo no
> haya cerrado la transacción si otro usuario lo incrementó, me devolverá
> simplemente el valor final. Alguien me puede aclarar un poco el tema por
> favor.?
>
> Gracias.
>
currval trabaja a nivel de sesión (conexión)... a ti no te importa si
los demas ususarios hacen un nextval de la misma secuencia por segundo
si tu ejecutaste nextval currval te va a devolver el ultimo valor
generado por ti...
es mas, si ejecutas currval sin que *tu* hayas ejecutado previamente
nextval te va a dar un error porque no hay valor que tu hayas
asignado...
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
From | Date | Subject | |
---|---|---|---|
Next Message | cristian daza | 2005-12-09 14:01:18 | Re: recuperar campo id |
Previous Message | Nicolás Domínguez Florit | 2005-12-09 13:58:58 | Re: Select * from tabla --> a String... |