我有一個表與下面的架構PostgreSQL的:如何解決「數字字段溢出」的問題
COLUMN_NAME, ORDINAL_POSITION,...., NUMERIC_PRECISION_INTEGER
"year";1;"";"YES";"numeric";;;17;10;17 "month_num";2;"";"YES";"numeric";;;17;10;17 "month_name";3;"";"YES";"text";;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)
我看到下面的錯誤
ERROR: numeric field overflow
SQL state: 22003
Detail: A field with precision 17, scale 17 must round to an absolute value less than 1.
這不是一個模式,而是從一些內部postgres錶轉儲。如果你能禮貌地產生一些可讀的東西,比如\ d的輸出或者用來創建這個表的CREATE TABLE語句(pgAdmin3可以幫你這麼做)?另外,聲明爲數字(X,Y)的字段最多可以使用X個位置,並且逗號分配Y小數點。也就是說,如果X = Y,則只能存儲值<1. –
另外,請在INSERT中包含列列表,這取決於任何特定的列順序是一個壞主意。 –