Foros del Web » Programando para Internet » PHP »

resetear clave ID de una tabla

Estas en el tema de resetear clave ID de una tabla en el foro de PHP en Foros del Web. Hola a todos, Tengo un problemita.... he hecho una tabla en MySQL usando phpMyAdmin con los siguientes campos: ID (Tipo: INT, Extra: auto_increment) Nombre (Tipo: ...
  #1 (permalink)  
Antiguo 03/04/2006, 04:11
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
resetear clave ID de una tabla

Hola a todos,

Tengo un problemita.... he hecho una tabla en MySQL usando phpMyAdmin con los siguientes campos:

ID (Tipo: INT, Extra: auto_increment)
Nombre (Tipo: TEXT)
Apellido (Tipo: TEXT)
Telefono (Tipo: INT)

con PHP genero una lista para mostrarlos y mediante formularios se agregan nombres y se los elimina constantemente. El problema es que, por ejemplo, si agrego 10 nombres (ID del 1 a 10 generadas automaticamente por el "auto_increment"), despues borro los nombres del ID 6 al 10 y luego agrego 5 nombres más, me queda: ID: 1, 2, 3, 4, 5, 11, 12, 13, 14, 15.

Aparentemente no hay problema porque funciona bien, pero si luego de varios dias de agregar y quitar nombres la ID será un numero GIGANTE ya que ese numero se muestra en la lista de nombres y quisiera evitar que ese numero se agrande hasta el infinito, aparte creo q la ID al ser INT solo acepta un numero de 11 cifras, bits o Bytes, ya que me sale un 11 en Longitud y no se que pasaría cuando llegue a eso.

Un amigo me comento que deben haber "scripts", funciones en PHP o comnados de MySQL para "RESETEAR" la clave ID y para que se ordenen secuencialmente denuevo (1, 2, 3, 4.....)

Hay alguien del foro que haya pasado por esto y logro crear o oencontrar algo para solucionarlo?????

Tengo montado en mi PC el EasyPHP con MySQL 4.1.9.


Agradezco mucho sus ayudas....

Saludos

Carlos Rojas
  #2 (permalink)  
Antiguo 03/04/2006, 08:19
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
He leído por ahi que este es el comando para resetear un campo auto_increment:

ALTER TABLE nombre_tabla AUTO_INCREMENT=valor;
  #3 (permalink)  
Antiguo 03/04/2006, 14:14
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Cita:
pero si luego de varios dias de agregar y quitar nombres la ID será un numero GIGANTE... quisiera evitar que ese numero se agrande hasta el infinito... no se que pasaría cuando llegue a eso.
A mí me parece que exageras un poco. La función del ID es simplemente identificar de manera única los registros y no su posición en tu tabla.

El rango del tipo INT es enooorme, son 4 bytes completos, si lo tienes como unsigned son 4 mil millones.

Veámoslo mejor con un ejemplo. Vamos a suponer que cada segundo agregas un nuevo usuario. Sin parar, las 24 horas. Algunos los borras pero como sabes la ID seguirá contando.

¿Cuánto tiempo pasará antes de que se te acaben los números?

Respuesta = 136 años

Ahora que si sigues preocupado, entonces usa un tipo de dato bigint, sólo almacenará 8 bytes y podrás tener muchos más, ¿pero cuántos?

Bueno, complicando el ejemplo, imagina ahora que cada segundo agregas 10,000 -diez mil- de nuevos usuarios (algo descomunal), para que se te acaben los números pasarán 60 millones de años, es decir, la misma cantidad de tiempo desde que se extinguieron los dinosaurios.

¿Sigues preocupado? =)
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #4 (permalink)  
Antiguo 03/04/2006, 23:33
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
jajaja bueno, viendolo de esa manera, me volveré viejo viendo como aumentan esos ID's

pedi q me ayudaran con esto por dos cosas, 1) una vez no se que paso que el Id paso del treinta y pico..... al 223456, o algo asi... y no se porque, no se si fue al modificar el php del formulario q meti la pata y agregue ese numero al ID y lamentablemente comenzó desde ahi. 2) como recien estoy aprendiendo PHP estoy usando los ejemplos del dreamweaver para aprender, y usar los codigos de las funciones q bienen por defecto para hacer lo q deseaba, y con lo poco q se, necesitaba q esas ID sean consecutivas y comiencen desde 1 SIEMPRE...!!! para poder ir de registro a registro.... pero bueno, tendre q apañarmelas de otra manera.... ya aprenderé.

A claudiovega: si funciona, lo que hace es bajar el contador del ID al maximo valor q haya en mi tabla, es decir, si el contador de ID esta en el 100 y luego de agregar y borrar registros mi ID max es 54..... al hacer "ALTER TABLE nombre_tabla AUTO_INCREMENT=1;" hace q se baje el contador a 55...... asi q por lo menos puedo bajar un poco los ID's

Gracias a los 2 por la ayuda.

Saludos

Carlos
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:45.