mysql int字段增长超过11位

时间:2011-10-15 09:04:46

标签: mysql database integer

我有一个mysql数据库,我正在使用它作为临时存储验证码值。它有一个自动递增的id键,带有int(11)字段。如果此值大于11位,会发生什么?

5 个答案:

答案 0 :(得分:10)

典型的 INT 使用4个字节,因此可以存储数字:
签名:-2147483648 to 2147483647
未签名:0 to 4294967295

BIGINT 使用8个字节,因此可以存储数字:
签名:-9223372036854775808 to 9223372036854775808
未签名:0 to 18446744073709551615

答案 1 :(得分:5)

此数字(11)与列范围完全无关 - [SIGNED] INTEGER定义范围(-2147483648 - 2147483647)。

括号内的数字仅在与ZEROFILL结合使用时才会使用。然后它定义显示数字的“长度”,即。值275552将作为字符串 00000275552返回。

答案 2 :(得分:0)

int(11)只接受前11位数字。其余的将被丢弃。 您可以修改表并将id数据类型从int更改为bigint

希望这有帮助。

答案 3 :(得分:0)

正如其他人所说,你不会得到11位数。当您达到最大值时,超出它的所有值都将被视为最大值。对于auto_increment字段,在将列类型更改为BIGINT之前,它将导致所有将来的插入失败:

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

答案 4 :(得分:0)

当您达到最大值时,超出它的所有值都将被视为最大值。对于auto_increment字段,在将列类型更改为BIGINT之前,它将导致所有将来的插入失败: