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 ;)
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 |