From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | "francisco (dot)" <francisco(dot)cpp(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: secuencias |
Date: | 2006-09-20 20:05:29 |
Message-ID: | 20060920200529.GD5434@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
francisco . escribió:
> Hola, Tengo La Sgte. duda:
> Cree una relacion tabla_a con un atributo id como llave primaria que es
> de tipo bigserial por lo que me creo la secuencia usuario_id_seq la cual
> funcionaba muy bien hasta que hice una insercion asignandole yo el valor al
> atributo id, el ultimo valor ingresado en el atributo fue el 7 y el valor
> que ingrese yo fue el 8, al crear una nueva tupla me arrojo un error de
> llave duplicada, al hacer un select a la secuencia tenia como ultimo valor
> el 7, o sea que no se actualizo a 8, tuve que hacer un alter sequence para
> actualizarla ¿existe alguna forma de que la secuencia se actualize al ultimo
> valor si le asigno yo el valor a id?
-- Doctor, me duele cuando hago esto
-- Entonces no lo haga.
Este es uno de esos casos :-) Las secuencias avanzan cuando las invocas
(nextval), pero si omites ese paso, es decir generas el valor tu mismo,
la secuencia no se ve afectada y por lo tanto sucede lo que tu
observaste.
Observa que no deberias haber usar ALTER SEQUENCE para cambiar la
secuencia, sino la funcion setval().
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2006-09-20 20:06:37 | Re: habilitar/deshabilitar triggers |
Previous Message | deepthroat | 2006-09-20 19:21:31 | habilitar/deshabilitar triggers |