【发布时间】:2019-02-13 18:23:11
【问题描述】:
我有两个问题。我希望两者都插入相同的值:429496729600,但其中一个因错误而失败:
db=> update order_detail set amount = 400*1024*1024*1024 where id = 11;
ERROR: integer out of range
db=> update order_detail set amount = 429496729600 where id = 11;
UPDATE 1
为什么第一次查询会出现错误?
UPD
忘记指定amount 的类型是bigint 和
400*1024*1024*1024 == 429496729600
【问题讨论】:
-
您的数字大于整数。第一个插入在插入之前有一个计算。当您乘以整数时,postgres 期望 Integer 作为结果。它不是这样失败的。
标签: sql postgresql type-conversion