首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我的列是INT( 10 )时,为什么不能插入10位数字

当我的列是INT( 10 )时,为什么不能插入10位数字
EN

Stack Overflow用户
提问于 2013-01-18 14:40:30
回答 6查看 9.1K关注 0票数 0

我有一个名为INT(10) ZEROFILL NOT NULL DEFAULT '0000000000',的专栏

但是当我插入像9100000010这样的东西时,我得到的是4294967295

它应该允许那里有10个数字,对吗?

如何正确地做到这一点?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-01-18 14:44:06

Int有最大值范围:

代码语言:javascript
复制
INT 4   -2147483648 2147483647
        0   4294967295 (unsigned )

因此,由于溢出,您将获得最大值。改用bigint,它有8个字节,这样就可以了。

http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html#integer-types

代码语言:javascript
复制
BIGINT  8   -9223372036854775808    9223372036854775807
          0                 18446744073709551615
票数 4
EN

Stack Overflow用户

发布于 2013-01-18 14:43:31

MySQL的整型字段中可能的最大值是2147483647,您的值9100000010大于该值。这就是为什么它会溢出到4294967295,这是无符号整数的最大值。

11.1.4.1. Integer Types (Exact Value)

代码语言:javascript
复制
INT    4    -2147483648 2147483647

如果要存储更大的数字,请使用BIGINT,范围为:

代码语言:javascript
复制
BIGINT  8   -9223372036854775808    9223372036854775807
票数 5
EN

Stack Overflow用户

发布于 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位。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14393672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档