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

¿Qué pasa si se "acaba" el AUTO_INCREMENT"?

Estas en el tema de ¿Qué pasa si se "acaba" el AUTO_INCREMENT"? en el foro de Mysql en Foros del Web. Pues eso: ¿Qué para si el un índice autoincremental apunta al valor más alto que es posible asignar, aún cuando existan índices no utilizados? ¿Comienza ...
  #1 (permalink)  
Antiguo 06/02/2006, 13:59
Avatar de KnowDemon  
Fecha de Ingreso: julio-2004
Ubicación: Ciudad de México
Mensajes: 544
Antigüedad: 19 años, 9 meses
Puntos: 2
¿Qué pasa si se "acaba" el AUTO_INCREMENT"?

Pues eso: ¿Qué para si el un índice autoincremental apunta al valor más alto que es posible asignar, aún cuando existan índices no utilizados?

¿Comienza a crear índices no validos? ¿Utiliza los espacios vacios? ¿Explota?
__________________
Mi pequeño espacio en la web: VisiónE
"El cosmos es todo lo que es, todo lo que fue, y todo lo que será alguna vez."
  #2 (permalink)  
Antiguo 08/02/2006, 11:56
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 21 años, 3 meses
Puntos: 2
hola , yo tambien en uno a la pregunta..........


es una duda que tengo hace rato..


un saludo
__________________
"Cuando se adelanta un oponente, enfréntalo y salúdalo; si intenta retroceder, déjalo seguir su camino"
  #3 (permalink)  
Antiguo 08/02/2006, 16:30
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
Bueno, hice una prueba con un campo TINYINT y el resultado fue que llegando al final de su secuencia, NO permite incluir más ya que la llave existe. SI LA LLAVE, por definición MySQL declara como campo llave los campos AUTO_INCREMENT.

En conclusión... Al llegar hasta donde pueda llegar la secuencia, NO permite más ingreso de registros.
__________________
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
  #4 (permalink)  
Antiguo 08/02/2006, 16:49
 
Fecha de Ingreso: octubre-2004
Mensajes: 143
Antigüedad: 19 años, 6 meses
Puntos: 0
Hola

HIce la siguiente prueba

cree una tabla
Código:
 create table probando( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id));
inserte hasta el nro mas grande
Código:
mysql> insert into probando values (100000000000);
Query OK, 1 row affected, 1 warning (0.00 sec)
Consulte la tabla y me dio esto
Código:
mysql> select * from probando;
+------------+
| id         |
+------------+
| 2147483647 |
+------------+
1 rows in set (0.00 sec)
y despues inserte el siguiente
Código:
mysql> insert into probando values (null);
ERROR 1062 (23000): Duplicate entry '2147483647' for key 1
mysql> insert into probando values (2147483648);
ERROR 1062 (23000): Duplicate entry '2147483647' for key 1
Asi que tienen por lo menos para 2.147.483.647 (dos mil millones de registros)....jajajajaja

Saludos
  #5 (permalink)  
Antiguo 10/02/2006, 03:44
 
Fecha de Ingreso: febrero-2006
Mensajes: 5
Antigüedad: 18 años, 2 meses
Puntos: 0
Con TINYINT te permite hasta un máximo de 127 registros, luego ya no puedes insertar más. Si el campo es solamente para identificar el número de registro y no vas a tner más de 127 registros, puedes hacer lo siguiente:
Incluye en el comando insert el campo clave con el valor más bajo que puedas, por ejemplo, sii el campo TINYINT se llamase ID_partido:

$resid=mysql_query("select min(ID_partido), max(ID_partido) from partidos");
$rowid = mysql_fetch_array($resid);
$idmin=$rowid["min(ID_partido)"];
$idmax=$rowid["max(ID_partido)"];
if ($idmin>1) $ID_partido=$idmin-1;
else $ID_partido=$idmax+1;
$result=mysql_query("insert into partidos (ID_partido....
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 01:47.