当前位置:   article > 正文

MySQL报错!Data truncation: Out of range value for colum_data truncation: out of range value for column

data truncation: out of range value for column

表面上看是字段设置的不够长,其实这里面隐藏一个小知识,关于无符号数和有符号数
今天项目表中有一个userId int(11)和mobilephone varchar(11)字段 因为某种业务需求 这两个字段设置的内容一样;
varchar类型存手机号 肯定没问题 手机号就是11位;但是存userId的时候 就不行了,我们知道:

对于 int类型来说 存储有符号数 和 无符号数的 范围是不一样的:
有符号数:[-2^31, 2^31 - 1]
无符号数:[0, 2^32 - 1]
int(11)默认是存储的有符号的数 int(10)默认存储无符号数 也就是 unsigned int
int(11)和int(10)指标是存储之后显示的位数 并不是标识可以存储的位数 有最大值的限制 跟这个括号里面的无关

这次我存储的数值超过了int 的范围 所以改成bigint
整型范围图
点击详细了解范围
记录一下 开发当中遇到的小bug 共勉

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/659124
推荐阅读