From: | "Jaime Casanova" <systemguards(at)gmail(dot)com> |
---|---|
To: | "Luis Guevara" <luis(dot)a(dot)guevara(at)gmail(dot)com> |
Cc: | "Noe Sereno" <nsereno(at)oestesa(dot)com(dot)mx>, "Mario Gonzalez" <gonzalemario(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: postgres y java |
Date: | 2006-08-11 15:16:47 |
Message-ID: | c2d9e70e0608110816v44e8e878q444d2e307dd8d235@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On 8/11/06, Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> wrote:
> Para obtener el último valor generado de una secuencia
>
> Hay alguna diferencia en usar esto:
> SELECT currval('nombre_secuencia');
>
> ¿ o esto ?
> SELECT last_value FROM 'nombre_secuencia';
>
> ¿ En todo caso cual es el más recomendable, asegurando una concurrencia alta
> ?
>
las secuencias viven mas alla de las transacciones asi que si usas el
segundo te puede retornar valores generados por otras transacciones
que no hayan terminado o que hayan terminado con rollback o
simplemente devolverte un valor que alguien mas genero cuando lo que
tu querias era el ultimo valor que *tu* insertastes.
currval() -- siempre te traera el ultimo valor que tu insertastes en
esta sesion
(solo puede usarse despues de nextval)
nextval() -- siempre te trae el siguiente valor valido mas alla de asi
alguien mas
esta generando valores para la misma secuencia
--
Atentamente,
Jaime Casanova
"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook
From | Date | Subject | |
---|---|---|---|
Next Message | Martin | 2006-08-11 16:06:39 | Fwd: retorno de una funcion |
Previous Message | Jaime Casanova | 2006-08-11 14:58:45 | Re: retorno de una funcion |