如何解决错误126422003:第1行的“ median_comments”列的值超出范围
我收到此错误:
错误1264(22003):列“ median_comments”的范围值超出 第1行
运行此查询后:
update influencers set `median_comments` = 1347 WHERE `id` = 1;
我不确定为什么在没有小数位且只有4位数字的数字上失败。
字段类型为:
median_comments decimal(10,8)
解决方法
您使用的是DECIMAL(10,8)
,这意味着十进制前的最大位数为(10 - 8) = 2
。
参考:DECIMAL Data Type Characteristics
DECIMAL列的声明语法为DECIMAL(M,D)。自变量的值范围如下:
- M是最大位数(精度)。范围是1到65。
- D是小数点右边的位数(小数位数)。范围是0到30,并且不能大于M。
要解决此错误,请将数据类型更改为DECIMAL(10,2)
。
ALTER TABLE `influencers`
CHANGE COLUMN `median_comments` `median_comments` DECIMAL(10,2) NOT NULL DEFAULT 0;
,
如果您使用小数(10,8)作为数据类型,则意味着您要指定小数点后8位,而整个数字只剩下(10-8,即2位)。
在这种情况下,由于您的数字1347包含4位数字(整数),因此由于只允许输入2,因此您将收到错误消息“超出范围的值”。
您应该考虑将其更改为至少十进制(12,8),这将使您的整数部分剩下4位数字,并且您的上述命令应该起作用。
请参阅帖子-Number format issue in Oracle。同样的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。