duda con clave primaria autoincremental
Tengo MySQL 4.1. Tengo un problemilla que me ha surgido con la clave primaria autoincremental:
Relleno una tabla con, digamos, 4 entradas. Asi que sale claves primarias 1,2,3 y 4, respectivamente.
Cuando borro dichas entradas con "DELETE * from nombre_tabla" y luego vuelvo a rellenar la tabla, veo para mi sorpresa que la cuenta de la clave sigue por el 4. O sea, en vez de empezar otra vez por 1, 2,3 .... sigue por 5,6,7....
¿Porque pasa esto y como se puede pasar al estado en que yo esperaba que estuviese? Gracias.
Relleno una tabla con, digamos, 4 entradas. Asi que sale claves primarias 1,2,3 y 4, respectivamente.
Cuando borro dichas entradas con "DELETE * from nombre_tabla" y luego vuelvo a rellenar la tabla, veo para mi sorpresa que la cuenta de la clave sigue por el 4. O sea, en vez de empezar otra vez por 1, 2,3 .... sigue por 5,6,7....
¿Porque pasa esto y como se puede pasar al estado en que yo esperaba que estuviese? Gracias.
El mantener el consecutivo es una funcion que permite mantener la integridad de bases de datos relacionales, ya que si el incremental es la llave contra otras tablas, el reutilizar un numero te crearÃa una inconsistencia contra los datos historicos.
Pero si no necesitas mantener de forma tan explicita el consecutivo, puedes reconstruir la tabla nuevamente.
Pero si no necesitas mantener de forma tan explicita el consecutivo, puedes reconstruir la tabla nuevamente.
Si no escribo ...long, PRIMARY KEY (indice)); me sale este error:
mysql> create table oid (indice INT NOT NULL AUTO_INCREMENT, ip varchar(35), oid
-> varchar(255), valor long);
ERROR 1075 (42000): Incorrect table definition; there can be only one auto colum
n and it must be defined as a key
mysql>
¿esto es una cuestion de diseño de MySQL en concreto o lo tienen tambien todas los servidores de BBDD?
(Por que supongo que a mas de uno, no solo a mi, le sera de interes tener una variable que se incremente pero que no tenga que ser clave, y por tanto se puedan reutilizar los numeros cuando borras. Lo curioso es que no borro los registros, lo que he hecho es cargarme la tabla entera con DROP TABLE XXX y luego la vuelvo a crear y es lo mismo. No se si borrando con sentencias SQL funcionara, no creo)
Gracias por responder
mysql> create table oid (indice INT NOT NULL AUTO_INCREMENT, ip varchar(35), oid
-> varchar(255), valor long);
ERROR 1075 (42000): Incorrect table definition; there can be only one auto colum
n and it must be defined as a key
mysql>
¿esto es una cuestion de diseño de MySQL en concreto o lo tienen tambien todas los servidores de BBDD?
(Por que supongo que a mas de uno, no solo a mi, le sera de interes tener una variable que se incremente pero que no tenga que ser clave, y por tanto se puedan reutilizar los numeros cuando borras. Lo curioso es que no borro los registros, lo que he hecho es cargarme la tabla entera con DROP TABLE XXX y luego la vuelvo a crear y es lo mismo. No se si borrando con sentencias SQL funcionara, no creo)
Gracias por responder
