我有一个名为INT(10) ZEROFILL NOT NULL DEFAULT '0000000000',的专栏
但是当我插入像9100000010这样的东西时,我得到的是4294967295
它应该允许那里有10个数字,对吗?
如何正确地做到这一点?
发布于 2013-01-18 14:44:06
Int有最大值范围:
INT 4 -2147483648 2147483647
0 4294967295 (unsigned )因此,由于溢出,您将获得最大值。改用bigint,它有8个字节,这样就可以了。
http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html#integer-types
BIGINT 8 -9223372036854775808 9223372036854775807
0 18446744073709551615发布于 2013-01-18 14:43:31
MySQL的整型字段中可能的最大值是2147483647,您的值9100000010大于该值。这就是为什么它会溢出到4294967295,这是无符号整数的最大值。
11.1.4.1. Integer Types (Exact Value)
INT 4 -2147483648 2147483647如果要存储更大的数字,请使用BIGINT,范围为:
BIGINT 8 -9223372036854775808 9223372036854775807发布于 2013-01-18 14:44:21
在MySQL中,INT(10)并不意味着值仅限于10个字符值。这只意味着MySQL在返回这些值时会尝试用空格/零来填充它们。
任何带符号的INT,包括INT( 10 )、INT(5)或任何其他INT(n)的数值范围是:-2,147,483,648 ... 2,147,483,647,最多10位。
https://stackoverflow.com/questions/14393672
复制相似问题