【发布时间】:2020-03-06 19:12:41
【问题描述】:
我的 postgres 数据库架构的表中有一个数字列,它的精度为 n。
我需要将此列更新为较低的精度,称之为m。
所以m n.
当我运行命令时:
ALTER TABLE my_table
ALTER COLUMN my_column
TYPE numeric(m, 2)
我收到以下错误:numeric field overflow
我理解这是因为我在表中存储的值的精度大于m(我希望新的精度为)。有什么办法可以告诉 postgres 更改精度并忽略丢失的精度?
例如。
如果 n = 20 且 m = 15
我在my_column 中有一个值,即 99999999999999999,如果我没记错的话,这个精度是 17,我可以告诉 postgres 在我更改表/列时忽略丢失的精度并将新值保存为 999999999999999 吗?
【问题讨论】:
-
小数点左边的数字不是这样的。
标签: sql postgresql