Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/02/2010, 16:20
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Resetear auto increment

Cita:
Por cierto, allí se habla de re-numerar los datos existentes.
Acá pregunta como resetear si los datos ya no existen.
El problema es obviamente el mismo.
Cuando "reseteas", en realidad estás renumerando, por lo que el problema básico subsiste:
1) Estás regenerando el ordenamiento físico de la tabla.
2) Sólo se puede hacer si:
a. Esa tabla no está relacionada con ninguna otra (su PK no se usa como FK en ninguna otra tabla).
b. No existen datos históricos de los registros originales.
c. La cantidad de registros es limitada.
d. Solamente se realiza como mantenimiento ocasional y no como proceso habitual.
e. La tabla no integra una base en producción (en uso), o si el server puede ser detenido por un determinado tiempo.

Fuera de eso, el "reseteo" de campos autoincrementales es, en todo sentido, una tarea absolutamente innecesaria, que solamente se busca realizar por causas "estéticas". Eso es algo que debe quedar claro.
Cita:
Da igual, si tenía 100 registros numerados del 1 al 100, y elimina los datos, al reiniciar el servidor comienza de 1 otra vez (por lo menos con InnoDB). Entonces la pregunta sería ... como prevenirlo, porque igual le va a suceder si resetea el server.
Los autoincrementales vuelven a cero solamente cuando se truncan las tablas. Un ALTER TABLE no funciona si existen datos en la tabla, cuya numeración sea superior a la indicada.
Esto ess así porque el valor del último auto_increment se almacenan en las tablas de esquema de MySQL, y no en la configuración del servidor.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)