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

Reinicialización de auto-increment

Estas en el tema de Reinicialización de auto-increment en el foro de Mysql en Foros del Web. Buenas. Tengo una tabla en mysql con un campo auto incrementable "id". El problema es que tras muchas inserciones y eliminaciones de registros, me queda ...
  #1 (permalink)  
Antiguo 20/11/2006, 09:40
 
Fecha de Ingreso: noviembre-2006
Mensajes: 30
Antigüedad: 17 años, 5 meses
Puntos: 1
Reinicialización de auto-increment

Buenas.
Tengo una tabla en mysql con un campo auto incrementable "id".
El problema es que tras muchas inserciones y eliminaciones de registros, me queda la tabla con la columna id tal que así:
1-2-4-8-21-23-29-45-56-78-80-84-98-102-120-121-123-124-126-138-141-[...]-234564-245565.
Me gustaría que me dijérais si existe la posibilidad de reinicializar automáticamente la numeración de esa columna.
No existe otra tabla que requiera ese campo, así que no habría problema en la reenumeración.

Gracias espero que se entienda mi problema.
  #2 (permalink)  
Antiguo 20/11/2006, 10:21
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Podes reiniciarlizar el auto-increment, pero NO te va a reenumerar el contenido de ese campo.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 20/11/2006, 14:11
 
Fecha de Ingreso: noviembre-2006
Mensajes: 30
Antigüedad: 17 años, 5 meses
Puntos: 1
Entonces que se puede conseguir?
Hombre, si por ejemplo tenemos los registros: 1-2-3-5-6-9 (nótese que tenemos registros intermedios que no aparecen) y al reinicializar en autoincrement se comienza a insertar por los registros que faltan de menor a mayor (en este caso 4-7-8-10-11-12-...) sería una posible solución a mi problema, pero no se si te refieres a eso.
De todas formas como se hace la reinicialización?

Gracias por la respuesta.
  #4 (permalink)  
Antiguo 20/11/2006, 15:46
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Mira, en mi caso, si utilizara campos autoincrement, sería SOLAMENTE en registros que se NUNCA voy a eliminar, como por ejemplo, registro de inventario, donde si un producto NO lo voy a seguir utilizando, NO lo borro, queda en el historial.

Si lo voy a utilizar en datos que van a ser volátiles (incluir, modificar, borrar), es mejor utilizar otro tipo de campo ya que el auto-increment NO me sería de utilidad.

Por ejemplo, si es registro de personas, utilizar el ID, cédula o identificador único de la persona e incluirlo manualmente.

Para tu caso y NO se lo que estas haciendo, NO lo veo funcional y menos, si es campo llave.

Si queres reiniciar el auto-increment, debes tener presente que va a iniciar en el número que le des de base y si el registro existe, va a duplicarlo, si es campo llave, vas a tener problemas al incluir registros.

ALTER TABLE tablaqueusaauto_increment AUTO_INCREMENT=1234

3.6.9. Using AUTO_INCREMENT
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #5 (permalink)  
Antiguo 20/11/2006, 17:03
 
Fecha de Ingreso: noviembre-2006
Mensajes: 30
Antigüedad: 17 años, 5 meses
Puntos: 1
Vale, entonces si va a crear duplicados no me es de utilidad reinicializarlo.

Estoy haciendo una Web que mantiene un inventario de ciertos "elementos" que pueden ser insertados, modificados o eliminados por usuarios registrados.
Según lo que me comentas no conviene tener para ello un campo clave "auto-increment" aunque no entiendo por qué no sería la opción más cómoda, ni qué sistema emplearía, sustituyendo al autoincremental, para saber el valor en el campo clave 'id' que debería insertar si previamente no se si existe ese elemento o no.
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 00:53.