Estaba yo tan feliz programando un aplicación que utilizaba MySQL como base de datos cuando, de repente, al dar de alta un nuevo registro en un tabla me saltaba un error que decía:
MySQL Duplicate entry for key PRIMARY
Extrañado, comprobaba una y otra vez el hecho de que la clave principal de aquella tabla era auto-incremental, pero cuando tenía que pasar del valor 127 al 128 se le iba la pinza y siempre intentaba meter el 127 que, como ya existía, saltaba el error.
Buscando por Internet, encontré un bug muy similar a lo que me estaba pasando, pero aquello parece que quedó zanjado en 2008, aunque igualmente probé con alguna solución propuesta sin éxito. Ante tal situación y creyendo que era problema del motor interno de InnoDB, pensaba que tendría que cambiarlo pero entonces me quedaría sin las transacciones y, por tanto, sin los rollback.
Menos mal que al final di con la solución. El campo que utilizaba como clave primaria era de tipo TinyInt que sólo puede almacenar desde -128 hasta 127, por lo que cambiándolo a tipo Integer la limitación me lleva hasta 429.4967.295 registros. Ni bugs ni tonterías, una mala elección por mi parte al diseñar la base de datos.
No es por darmelas de listilla ni nada de eso… pero cuando he visto el 127 se me ha venido esa idea a la cabeza 🙂
Lo que no sé es porque trataba de meter el 127, se supone que debería controlar un overflow y empezar de nuevo por el valor mínimo… no?
Saludines ^^
YoMisma
@YoMisma : ya, es que tardé un poco en darme cuenta de que se quedaba en el 127. Parece ser que hacía justamente lo contrario, al exceder el límite superior ponía el valor máximo.
No he entendido ná xD
@Mrs. C. : es comprensible xD
Las bases de datos y las redes siempre han sido mi cruz.
Un bico
Debería apuntarme a clases de chino.
@Tuxina : con lo bonitas que son ambas jiji
@Jake : dicen que podría tener mucho futuro.
Buuuuu, patooosooo 😛
Si eso lo sabe hacer hasta un teleco como yo… lo que hay que ver… xD
@Onir : que mala persona jajajaja
¡Este post me ha puesto perraca!
@apio : ya sabía yo que entre todos, alguien captaría la sensibilidad que emana este post xD
Bienvenidos al ascensor espacial, plim, nivel 1 alcanzado, …plim, nivel 2 alcanzado, ……….. plim, nivel 65530 alcanzado, ….. plim, nivel 65535 alcanzado, ….. Atención, nos dirigimos al centro de la tierra, abrochense los cinturones.
@The C1-B0rg : si ese ascensor anuncia cada uno de los niveles por los que pasa, sus viajeros llegarán antes a su límite psicológico xD