Gabriel Messner escribió:
> Hola de nuevo,
> 
> ¿podrías explicarlo con un poco más de detalle, por favor?

Las secuencias no son tablas y no deben ser usadas como tales.  El
servidor maneja cosas como cache y concurrencia internamente; las
funciones nextval() y currval() obtienen el valor correcto de la
secuencia, mientras que el last_value es una representación de bajo
nivel que no necesariamente corresponde con el valor que te toca.

En vez de hacer 
select last_value from nombre_de_secuencia;             -- MALO
debes hacer
select currval('nombre_de_secuencia');                  -- CORRECTO
lo cual te garantiza el valor correcto incluso en situaciones en que hay
varios procesos simultáneamenete usando la secuencia.


-- 
Alvaro Herrera                  http://www.amazon.com/gp/registry/5ZYLFMCVHXC
"I personally became interested in Linux while I was dating an English major
who wouldn't know an operating system if it walked up and bit him."
(Val Henson)
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda

Responder a