Mysql int(11)数字超出范围

时间:2011-08-03 04:25:18

标签: php mysql

当我尝试插入像int(20)这样的数字时,我有一个设置为622108120237的列,它说它超出了范围。为什么呢?

3 个答案:

答案 0 :(得分:48)

使用MySQL的 int 存储在4个字节上,因此,只能包含-21474836482147483647之间的值。

622108120237大于2147483647;所以它不适合int - 看起来你将不得不使用 bigint

请参阅Datatypes - Numeric types部分 关于那个MySQL手册。

答案 1 :(得分:39)

See the MySQL Numeric Type Documentation。这些都有很好的记录。

签名INT的范围是[-2147483648,2147483647]。

请注意,在INT(x)的情况下,x是“显示宽度”,与范围或空间要求无关:

  
    

MySQL支持扩展,可以选择在类型的base关键字后面的括号中指定整数数据类型的显示宽度。例如,INT(4)指定显示宽度为四位的INT ... 显示宽度不会约束[或扩展]可以存储在列中的值的范围。

  

快乐的编码。

答案 2 :(得分:4)

您可以存储在有符号整数中的最大值是2147483647 并且unsigned int是4294967295,两种情况都超过了限制