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

Reutilizar ID registro eliminado en Autoincrement

Estas en el tema de Reutilizar ID registro eliminado en Autoincrement en el foro de Mysql en Foros del Web. Hola, me gustaría reutilizar IDs generados con Autoincrement ya eliminados. Si tengo 50 registros y está borrado el 20. Quiero que el registro que vaya ...
  #1 (permalink)  
Antiguo 20/01/2015, 14:30
 
Fecha de Ingreso: octubre-2008
Ubicación: Alicante
Mensajes: 337
Antigüedad: 15 años, 6 meses
Puntos: 9
Reutilizar ID registro eliminado en Autoincrement

Hola, me gustaría reutilizar IDs generados con Autoincrement ya eliminados.

Si tengo 50 registros y está borrado el 20. Quiero que el registro que vaya a guardar obtenga el Id 20, no el 51.

Se que puede sonar un poco absurdo pero para la aplicación que está creada es indispensable que los IDs vayan correlativos.

¿Existe alguna manera rápida de hacerlo?
(he visto un post con la misma pregunta del año 2011 pero no obtuvo respuesta eficaz)

Mil gracias desde ya!
  #2 (permalink)  
Antiguo 20/01/2015, 14:41
 
Fecha de Ingreso: octubre-2014
Ubicación: Buenos Aires
Mensajes: 278
Antigüedad: 9 años, 6 meses
Puntos: 12
Respuesta: Reutilizar ID registro eliminado en Autoincrement

Hola manolo_manolo, con respecto a tu consulta.

si se puede seria un algoritmo que te hicieras tu mismo, no he visto nada automatico para eso, por recomendación un id (clave primaria) no debe ser sustituido nunca incluso si fue borrado alguna vez.

saludos
__________________
http://www.sp-vision.net
  #3 (permalink)  
Antiguo 20/01/2015, 18:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Reutilizar ID registro eliminado en Autoincrement

Es un tema recurrente, cuya aclaración puedes encontrar entre las FAQs de este foro: Renumerar un campo auto_increment

Y si lo que quieres es que quede más "bonito", mira este otro tema: Cómo numerar secuencialmente una consulta, sin usar PK
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 21/01/2015, 06:14
 
Fecha de Ingreso: octubre-2008
Ubicación: Alicante
Mensajes: 337
Antigüedad: 15 años, 6 meses
Puntos: 9
Respuesta: Reutilizar ID registro eliminado en Autoincrement

Vale me ha quedado bastante clarito. Pero entonces estoy metido en un lío. Os explico:

El ID en un principio se compuso de 6 dígitos. en la primera tabla, pongamos que son Animales. el ID comenzaría así: 100001, 100002, etc... con un límite de hasta 199999, ya que el primer dígito se utiliza para otros asuntos.

Hay otras tablas que llevan el mismo sistema, del 200001 al 299999. Otra del 399999. Todo esta montado con este sistema y hay decenas de funciones y archivos que tratan estos IDs de manera correcta, diferenciando el primer dígito de los siguientes.

En un principio no se pensó rebasar en una tabla los 99.999 registros por lo que con este sistema todo funcionaba a la perfección. El problema ha sido cuando una de las tablas está insertando demasiados registros y borrando otros tantos, y claro el autoincrement está acercándose al límite (aunque la tabla en si sólo tiene normalmente 5.000 registros) d ahí que hayan casi 95.000 IDs antiguos eliminados. Por eso necesitaba reutilizar IDs ya eliminados.

La solución de ampliar el campo a 7 dígitos o incluso a 8 para tener margen de sobra se me hace terrorífica puesto que tendría que modificar decenas de archivos y funciones. Por no hablar de las miles de páginas indexadas con estos IDs con 6 dígitos que aparecen en las URLs...

Alguna sugerencia, consejo?? Estoy metido en un aprieto!!
  #5 (permalink)  
Antiguo 21/01/2015, 06:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Reutilizar ID registro eliminado en Autoincrement

¿Sugerencia o consejo?
Cuando tienes un sistema de base mal diseñado, no queda otra que reingeniería...

Por lo pronto, si el primer dígito era un identificador de algún tipo, por lo que describes, simplemente debió ser puesto en otra columna, y no ser parte del número. Es lo que se hace... Manejar luego la cantidad de digitos de la represenación es una nimiedad.
De haberlo hecho así el problema no existiría. Ahora tienes un problema de los muy complicados y que nadie quiere agarrar.

Mi sugerencia es que se haga reingeniería, porque cualquier parche que hagas desestabilizará el sistema entero.
__________________
¿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 21/01/2015, 06:47
 
Fecha de Ingreso: octubre-2008
Ubicación: Alicante
Mensajes: 337
Antigüedad: 15 años, 6 meses
Puntos: 9
Respuesta: Reutilizar ID registro eliminado en Autoincrement

Entendido, supongo que me ha tocado ser el "pringao" que viene detrás del gandul a rehacerle el trabajo, pero ahora con el quíntuple esfuerzo. Que suerte la mía...

Gracias por el consejo!!! Y brindo por los sistemas con miramientos al futuro!!!

Etiquetas: registro
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 06:25.