| 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: | Whole Thread | Raw Message | 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 |