Cita: Alguien me podria explicar porque paso eso ?
¿Una respuesta académica y de programador?
Porque no conoces los sistemas de representación binarios, y definiste mal el tipo de dato.
Lo que aparentemente no conoces es que no existe un sólo tipo de representación de números, sino al menos dos: Con signo y sin signo.
El tema pasa porque los números no se almacenan como cifras (de hecho, no existen ni las cifras ni las letras para las computadoras), sino como binarios de un ancho de 8 a 64 bits (hablando genericamente, esto es más complejo en realidad), y por esa misma razón, para representar valores positivos y negativos se los codifica para que la mitad del rango de representaciones sean negativos y la otra positivos (más el cero). Eso hace que un BIGINT con signo tenga un rango de representación de -9223372036854775808 al 9223372036854775807 si tiene signo, y de 0 a 18446744073709551615 si no tiene signo.
Pero eso también hace que un número no puede representar sin signo ningún numero superior a 18.446.744.073.709.551.615, por lo que cualquier intento de superar esa cantidad de dígitos desborda la representación.
Ahora bien, si lo definiste como BIGINT sin el UNSIGNED, cuando llega a 9223372036854775807 , al sumar uno más se produce un desborde y el numero positivo pasa a ser negativo.
Eso en programación es un error gravísimo, que puede traer resultados catastróficos (misiles estratosféricos se han destruido por errores así).
¿Cómo se resuelve eso?
De muchas formas, pero una de ellas es no usando números tan largos si no es estrictamente necesario.
Mi pregunta sería: ¿Por qué usas un ID de esa longitud y cómo es posible que necesites identificadores imposibles de alcanzar en la naturaleza?
Te lo voy a plantear de esta forma:
Si cada persona de este planeta se registrara en una base de datos usando BIGINT, y cada registro creara un ID, se necesitarían más de 41 años para agotar la numeración.
¿Me puedes explicar para qué necesitas algo mayor?
¿De dónde sale ese numero y qué es lo que lo produce?