Foros del Web » Programando para Internet » PHP »

Como resetear el campo ID

Estas en el tema de Como resetear el campo ID en el foro de PHP en Foros del Web. Hola a todos, pues aqui con una nueva pregunta con esto de PHP y MySQL. Tengo varias tablas en Mysql, el problema que tengo es ...
  #1 (permalink)  
Antiguo 26/04/2006, 10:18
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 208
Antigüedad: 19 años, 8 meses
Puntos: 1
Pregunta Como resetear el campo ID

Hola a todos, pues aqui con una nueva pregunta con esto de PHP y MySQL.

Tengo varias tablas en Mysql, el problema que tengo es que cada que elimino un registro todo bien, pero cuando vuelvo a insertar uno nuevo el campo ID no es continuo se salta la numeración y no hay un orden, finalmente tengo como 20 registros desde el número 1 y hay algunos que ya tienen el numero 100, 50, 70 91 o más y no puedo hacer que el numero sea continuo.



¿a alguien le ha pasado esto?

¿como vuelvo a hacer que la numeración se resetee?

o bien ¿hay alguna forma de evitar que esto pase al eliminar un registro o algo asi?

Bueno, pues de antemano gracias como siempre.

Saludos!!
  #2 (permalink)  
Antiguo 26/04/2006, 10:33
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 9 meses
Puntos: 20
La numeración es siempre contínua, si borras por ejemplo la ID 50, y la última que tengas es la 49, igualmente la próxima no volverá a ser la 50, sino la 51. ¿Me explico? Por mucho que borres, si una ID ha pasado, ya ha pasado.

Si no te importa perder los datos puedes hacer un TRUNCATE TABLE(). Eso borraría los datos y resetearía las ID.
  #3 (permalink)  
Antiguo 26/04/2006, 10:35
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años, 7 meses
Puntos: 2
Supongo que tu campo de ID es "auto_increment". Este valor se va incrementando cada vez que ingresas un registro a la base de datos. Si ingresas 10 registros y luego borras los primeros 5, el próximo registro insertado tendrá un valor de 11 en el campo ID. Si querés volver a utilizar los IDs del 1 al 5, vas a tener que hacerlo "a mano", es decir, indicandole en tu consulta el id que queres que tenga el registro, cuidando de que ese id no este ya asignado a otro registro (supongo que tu campo ID es la clave primaria, ¿no?).
Ahora, si querés podes realizar la consulta:

alter table tu_tabla auto_increment = 0

Despues de hacer eso, el proximo registro ingresado tendra el ID siguiente al mayor ID de los registros de la tabla.
Saludos.
  #4 (permalink)  
Antiguo 26/04/2006, 10:36
 
Fecha de Ingreso: junio-2005
Ubicación: Madrid, España
Mensajes: 288
Antigüedad: 19 años, 4 meses
Puntos: 1
Eso es porqe el campo del id lo has declarado como autoincrement, de todas formas no es muy optimo hacer lo que quieres porque cada vez que eliminas un registro se tendria que reorganizar los ids asignados a cada registro, ya que si eliminas el ultimo no pasaria nada, pero si eliminas uno que esta en medio se tendrian que reorganizar todos los que hubiese por debajo de el, y bueno en una BD pequeña se podria hacer pero en BD grandes supondria un tiempo añadido de ejecucion mayor y no necesario.
  #5 (permalink)  
Antiguo 26/04/2006, 10:38
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 9 meses
Puntos: 20
Cita:
Iniciado por zekenet
Eso es porqe el campo del id lo has declarado como autoincrement, de todas formas no es muy optimo hacer lo que quieres porque cada vez que eliminas un registro se tendria que reorganizar los ids asignados a cada registro, ya que si eliminas el ultimo no pasaria nada, pero si eliminas uno que esta en medio se tendrian que reorganizar todos los que hubiese por debajo de el, y bueno en una BD pequeña se podria hacer pero en BD grandes supondria un tiempo añadido de ejecucion mayor y no necesario.
Totalmente de acuerdo. Las ID no tienen por qué ser seguidas, son solo una identificación.
  #6 (permalink)  
Antiguo 26/04/2006, 10:45
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 208
Antigüedad: 19 años, 8 meses
Puntos: 1
Totalmente aclarado

Ok, ha quedado totalmente claro esto de las ID, pues el campo id de mi tabla si es "Autoincrement" y si es "primaria" y como mencionan que solo es un identificador pues como veo no tiene mayor dificultad que el numero no sea contínuo a menos que se haga a mano, pero si es una bdd muy grande no tiene caso.

Bien, pues muchisimas gracias por sus explicaciones , me ha quedado muy claro.

Saludos!!!
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 21:28.