Bueno, recientemente me tope con un problema (no muy complejo) pero que no encontre por ningun lado la solucion, y como creo que es algo que a todos al menos una vez le ha pasado, posteo como lo sulucione, seguramente hay otras formas, esta es la que se me ocurrio y funciono.
Problema: Tengo una tabla con datos, con un id autoincrementado con varios cientos de miles de registros, para un proyecto en particular solo nesesito una fraccion de estos, asi que copio la tabla y borro los que no se van a usar asi no ocupan lugar, entonces, quedan enormes bucotes en los id. como es para un proyecto nuevo no puedo dejarlo asi, seria muy precario, no obstante esta tabla se relaciona con otras(con caracteristicas similares) por lo que la reorganizacion tiene que mantener la integridad.
Solucion:
El ejemplo se basa en una tabla de provincias, que tiene vinculadas localidades mediante claves foraneas.
0-> Antes que nada, asegurarse que todas las tablas que dependan de la que se va a reorganizar, (en ente caso la de localidades) tengan un comportamiento CASCADE para las actualizaciones.
1-> Crear un indice redundante sobre la clave primaria de la tabla a reorganizar. (Para "engañar" a las claves foraneas)
2-> Borrar el indice PRIMARY de la tabla.
3-> Quitar el AUTO_INCREMENT de la ex clave primaria
4-> Crear un campo auxiliar, con clave primaria y AUTO_INCREMENT
5-> Actualizar los id originales.
6-> Borrar el campo auxiliar.
7-> Volver a agregar la clave primaria donde corresponde.
8-> Agregar el autoincrementado.
9-> Borrar el indice redundante
10-> Si fuese el caso, se deveria devolver a las tablas dependientes el comportamiento a sus claves foraneas, cambiando el CASCADE por el que corresponda.