2011-10-15 8 views
5

Tengo una base de datos mysql, y la estoy usando como un almacenamiento temporal de valores de captcha. Tiene una clave de identificación auto incrementada, con el campo int(11). ¿Qué sucede si este valor supera los 11 dígitos?campo mysql int que crece más de 11 dígitos

Respuesta

10

Un típico INT utiliza 4 bytes, por lo que puede almacenar los números:
firmado: -2147483648 to 2147483647
sin signo: 0 to 4294967295

Un BIGINT utiliza 8 bytes, por lo que puede almacenar los números:
Firmado: -9223372036854775808 to 9223372036854775808
sin signo: 0 to 18446744073709551615

0

int(11) aceptará solo los primeros 11 dígitos. el resto de ellos será descartado. Puede modificar su tabla y cambiar su tipo de datos de identificación de int a bigint.

Espero que esto ayude.

5

Este número (11) no tiene absolutamente nada que ver con el rango de columna - [SIGNED] INTEGER define un rango (-2147483648 - 2147483647).

El número entre paréntesis se está utilizando solo cuando se combina con ZEROFILL. Luego define la "longitud" del número mostrado, es decir. el valor 275552 se devolverá como cadena00000275552.

0

Como han dicho otros, no obtendrá 11 dígitos. Cuando alcance el valor máximo, todos los valores que lo superen se tratarán como si fueran el valor máximo. En el caso de campos AUTO_INCREMENT, que hará que todas las inserciones futuras a fallar hasta que se cambie el tipo de columna a un BIGINT:

ERROR 1062 (23000): Duplicate entry '4294967295' for key 1

0

Cuando llegue al valor máximo, todos los valores superiores a él, serán tratados como si ellos fueron el valor máximo. En el caso de los campos auto_increment, provocará que todas las inserciones futuras fallen hasta que cambie el tipo de columna a BIGINT:

Cuestiones relacionadas