Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Resetear auto increment

Estas en el tema de Resetear auto increment en el foro de Mysql en Foros del Web. Tengo un autoincrement para las ID la cuestion es que haciendo pruebas pues ahora va por la id 30 xD quiero saber si se puede ...
  #1 (permalink)  
Antiguo 06/02/2010, 13:03
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 15 años, 1 mes
Puntos: 22
Resetear auto increment

Tengo un autoincrement para las ID la cuestion es que haciendo pruebas pues ahora va por la id 30 xD quiero saber si se puede resetear.. los 30 registros estan borrados.. si solo fuese una tabla pues la creo otra vez pero es que son varias..
  #2 (permalink)  
Antiguo 06/02/2010, 13:12
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Resetear auto increment

Hola,

No estoy completamente seguro, puede ser que en las últimas versiones eso haya cambiado (o sea diferente dependiendo del 'engine'), pero creo que MySQL resetea los autonuméricos al reiniciar el servidor (solamente el servicio MySQL).

Si no fuera así entonces tendrías que volver a crear las tablas (posiblemente con el parámetro AUTO_INCREMENT = numero, en las opciones de la tabla, para iniciar de un número diferente que 1).

Saludos,
  #3 (permalink)  
Antiguo 06/02/2010, 13:21
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Resetear auto increment

este tema se ha discutdo varias veces

mira este post donde podrás entender los problemas que te traería.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 06/02/2010, 15:50
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Resetear auto increment

Hola,

Cita:
Iniciado por huesos52 Ver Mensaje
... donde podrás entender los problemas que te traería. ...
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.

Por cierto, allí se habla de re-numerar los datos existentes.
Acá pregunta como resetear si los datos ya no existen.

Cita:
... InnoDB resets the next auto_increment value to the highest value in the table + 1 after a server restart. ...
Saludos,

Última edición por HackmanC; 06/02/2010 a las 15:58 Razón: re-numerar
  #5 (permalink)  
Antiguo 06/02/2010, 16:20
Avatar de 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)
  #6 (permalink)  
Antiguo 06/02/2010, 22:45
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Resetear auto increment

Hola,

Solamente para terminar con esto de mi parte, para mí la pregunta estaba bastante clara, habrá que esperar hasta que angel1993 comente sus resultados y de allí en adelante lo podrán asesorar adecuadamente,

Cita:
Iniciado por gnzsoloyo Ver Mensaje
... Cuando "reseteas", en realidad estás renumerando, ...
No creo que sea lo mismo, angel1993 dice específicamente que los registros 'ya están borrados', por lo tanto ya no existen, ni uno solo, no hay ordenamiento físico en la tabla ni nada por el estilo (sino el mantenimiento habitual).

Desde el punto de vista de un arquitecto de aplicaciones no es una tarea innecesaria, se pueden realizar 30 pruebas para ver si tu aplicación funciona correctamente y posteriormente resetear para ver el comportamiento de tu aplicación.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
... 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.
En el caso de InnoDB no es así, se almacena en memoría temporal, cuando se resetea el servidor el autonumérico se resetea hasta el registro con el valor más alto + 1.

Saludos.
  #7 (permalink)  
Antiguo 07/02/2010, 15:52
 
Fecha de Ingreso: abril-2008
Mensajes: 223
Antigüedad: 16 años, 6 meses
Puntos: 8
Respuesta: Resetear auto increment

te doy un metodo mas practico borra el campo id y lo volvel a crear, es la forma mas facil y rapida que existe de resetear un campo auto increment, te recomiendo que el capo sea integer asi te cuenta infinitamente, sino te va a dar error.
  #8 (permalink)  
Antiguo 07/02/2010, 17:09
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 15 años, 1 mes
Puntos: 22
Respuesta: Resetear auto increment

Bueno tengo que hacer un par de cosas antes de resetear ya os comento, gracias a todos.
  #9 (permalink)  
Antiguo 06/01/2011, 00:40
 
Fecha de Ingreso: julio-2008
Mensajes: 91
Antigüedad: 16 años, 4 meses
Puntos: 6
Respuesta: Resetear auto increment

Código:
TRUNCATE nombre_tabla;
A mi me funciono, borra todos los datos y resetea el autoincremente; debo decir que la tabla utiliza el motor MyIsam.

Saludos...

Etiquetas: auto, increment, resetear
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:04.