【发布时间】:2011-11-12 12:05:04
【问题描述】:
我有一个具有以下架构的表
COLUMN_NAME, ORDINAL_POSITION,...., NUMERIC_PRECISION_INTEGER
"年";1;"";"是";"数字";;;17;10;17 "month_num";2;"";"YES";"数字";;;17;10;17 "月名";3;"";"是";"文本";;1073741824;;;
"week_of_month";4;"";"YES";"numeric";;;17;10;17
"count_of_contracts";5;"";"YES";"bigint";;;64;2;0
但是当我将以下内容插入其中时
insert into contract_fact values(2011, 8, 'Aug', 1, 367)
我看到以下错误
错误:数值字段溢出
SQL 状态:22003
详细说明:精度为 17、比例为 17 的字段必须舍入为小于 1 的绝对值。
【问题讨论】:
-
这不是一个模式,而是来自一些内部 postgres 表的转储。如果你有礼貌地产生一些可读的东西,比如 \d
的输出或用于创建这个表的 CREATE TABLE 语句(pgAdmin3 可以帮助你)?此外,声明为 numeric(X,Y) 的字段最多可以使用 X 个位置,其中 Y 位小数在逗号后面。这意味着如果 X=Y 你只能存储 -
另外,请在您的 INSERT 中包含列列表,这取决于任何特定的列顺序是一个坏主意。
标签: postgresql