Re: secuencias

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

In response to

  • secuencias at 2006-09-20 19:00:49 from francisco .

Browse pgsql-es-ayuda by date

  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