我跑在我们的老MySQL数据库精细的查询,其中有一个检查:如何避免数值数据溢出
WHERE column_x + column_y > 524288000
现在我们已经迁移到红移,查询失败:
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
的行。
这里有什么解决方法?
谢谢,它仍然溢出,但后来我试图明确设置大小,它很好地工作。一旦我的编辑被接受或做出其他澄清,我会接受这个答案。 – Dean
@Dean您的编辑未被接受,但我编辑了它。它是这样工作吗? –
我认为这是诀窍。 – Dean