【 使用环境 】生产环境
【 使用版本 】4.2.0_CE
【问题描述】
INSERT INTO report_rate
(name
,match_prefix
,num_length
,rate
,billable_unit
) VALUES (‘sdfsdf’,’’,-1,1.10,5);
数据库字段如上,这条语句在dbserver工具上可以执行成功,但在控制台上执行报错:
ERROR 1264 (22003): Out of range value for column ‘rate’ at row 1
2 个赞
王利博
#3
为什么会越界:可能是字符太长,数字太大等等都有可能。 等待下4.2.1版本吧
1 个赞
兹拉坦
#5
感觉不像是插入 1.10 这条 SQL 报的错,先看日志确认一下报错时插入的数据是不是 1.10 ?
例如我往 decimal(12, 5) 的列里插入两条数据,第一条 1234567.12345 有 12 个有效数字,插入成功了,第二条 12345678.12345 有 13 个有效数字,插入失败了,符合预期。
然后看一下 trace id,搜索一下失败的日志中显示的插入失败的数字是不是您的 1.10,比如我拿着 trace id 在日志里搜索到的插入失败的数字就是我这个有 13 位有效数字的东西,是符合预期的。
兹拉坦
#6
为啥要等待 4.2.1 版本?是修复了什么相关的已知 bug 吗?
2 个赞
王利博
#7
1 个赞
秃蛙
#10
@AntTech_OMFHF3
你好,这个问题还能复现并提供日志信息吗?最近遇到同版本类似的问题,操作的时系统表,但环境比较特殊,暂时没定位出原因,如果现场还能模拟复现,可以提供下日志,我们再确认下是否是缺陷。
可以复现。ky10系统
PS:此问题复现时,创建普通租户也是报错