Postgres BIGINT超出范围

dan*_*ius 3 sql postgresql npgsql

我正在发现PostgreSQL的新世界但是在将Firebird 2.1数据库转换到PostgreSQL 9.3时我遇到了以下错误

BIGINT out of range: 
Run Code Online (Sandbox Code Playgroud)

我已经从import语句检查了Min和Max值,它们适合Bigint并且可以导入,但是附件中的整个insert语句给了我错误.我还在PGAdmin中重新定义了错误.

表有以下结构:

CREATE TABLE SomeTable
(
  id integer NOT NULL 
  n0 bigint NOT NULL DEFAULT 0,
  n1 bigint NOT NULL DEFAULT 0,
  n2 bigint NOT NULL DEFAULT 0,
  n3 bigint NOT NULL DEFAULT 0
  .
  .
  .
  n247 bigint NOT NULL DEFAULT 0,
  CONSTRAINT SomeTable_pkey PRIMARY KEY (id)
)
Run Code Online (Sandbox Code Playgroud)

文件具有实际的insert语句和表结构,也提取了值

有什么建议 ?

实际错误错误:bigint超出范围 *** 错误 ***

错误:bigint超出范围SQL状态:22003

更新 我使用此表单中的语句

insert .... values ((1::int4),(2222222222::int8)....);
Run Code Online (Sandbox Code Playgroud)

什么时候改成它

insert .... values (1,2222222222,....);
Run Code Online (Sandbox Code Playgroud)

有用.在我看来,像Postgres中的一个小痘痘.

UPDATE

该查询是来自NPGSQL 2.0准备语句的表单.在版本2.1中,该问题已得到修复,并且可以正常运行 NPGSQL错误跟踪器

Clo*_*eto 9

SQL Fiddle示例中的此值超出范围:

select -9223372036854775808::int8;
ERROR:  bigint out of range
Run Code Online (Sandbox Code Playgroud)

问题是它首先尝试转换9223372036854775808为bigint,然后才改变它的符号.它可以工作

select (-9223372036854775808)::bigint;
         int8         
----------------------
 -9223372036854775808
Run Code Online (Sandbox Code Playgroud)