当我尝试插入像int(20)
这样的数字时,我有一个设置为622108120237
的列,它说它超出了范围。为什么呢?
答案 0 :(得分:48)
使用MySQL的 int
存储在4个字节上,因此,只能包含-2147483648
和2147483647
之间的值。
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,两种情况都超过了限制