我在旧的MySQL数据库中有一个运行良好的查询,其中有一个检查:
WHERE column_x + column_y > 524288000
现在我们已经迁移到Redshift,查询失败:
ERROR: Numeric data overflow (addition)
Detail:
-----------------------------------------------
error: Numeric data overflow (addition)
code: 1058
context:
query: 915381
location: numeric.hpp:112
process: query4_s0_22 [pid=6421]
----------------------------------------------- [SQL State=XX000]
两列都是
bigint
类型。当运行查询而不添加列时(只检查一列或另一列),查询执行得很好。我假设有些行的column_x + column_y
大于bigint
的最大大小。这里有什么解决办法?
最佳答案
WHERE column_x::numeric(20) + column_y::numeric(20) > 524288000
关于mysql - 如何避免数值数据溢出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16677823/