Re: problema con campo serial

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: jose fermin francisco ferreras <josefermin54(at)hotmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: problema con campo serial
Date: 2005-09-05 21:05:53
Message-ID: c2d9e70e0509051405217542fd@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 9/5/05, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> wrote:
> On Mon, Sep 05, 2005 at 06:35:48PM +0000, jose fermin francisco ferreras
> wrote:
>
> > codigo serial,
> > nombre char 20,
> > apellido char 20,
> > ... /* Estos son los campos mas importantes para el ejemplo q muestro */
> >
> > la combinación de nombre y apellido lo declare como clave unica (unique)
> > entonces cuando estaba llenando la tabla e intencionalmente repetí una
> > persona antes digitada (osea el nombre y el apellido) y muy bien postgres
>
> > me dijo q no se podía grabar el registro porque violaba la clave unica.
> > Entonces seguí llenando la tabla con otro registro diferente y cuando
> grabe
> > el registro o sorpresa me salto un numero en el codigo, ya q el numero q
> > tocaba era el 5 y puso el 6. Cómo puedo puedo resolver esto que cuando se
>
> > violé la clave unique y luego se intente insertar otro registro a la hora
> d
> > grabar la secuencia no se disloque.
>
> En principio, la respuesta es no se puede. ¿Y que importancia tiene?
> Despues de todo, en realidad da lo mismo si hay un numero sin asignar.
>

Bueno, si se puede pero no usando serial tendrias que asignar
manualmente el siguiente codigo haciendo un: select codigo from tabla
order by codigo desc limit 1

claro que si me preguntes te dire como ya te dijo Alvaro... en
realidad importa si hay un numero sin asignar? si te importa, hazlo
manualmente.

Ademas, te recomendaria que no uses nombre + apellido con indice
unico... haces lenta la insercion y vas a crear un problema cuando
tengas que ingresar a otra persona con el mismo nombre y apellido...
cosa que va a pasar, eventualmente...

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mario Gonzalez 2005-09-05 21:25:40 Administracion de Usuarios
Previous Message Alvaro Herrera 2005-09-05 19:32:55 Re: parametros para el createuser