标签:数据库 postgresql int
节前快要下班的时候,数据库中有一个临时表cert_display_tmp用来做界面展示的,这张表的数据是来自t_cert_sample,张瑛说数据不正确,于是手动执行更新函数,报integer out of range。
CREATE TABLE cert_display_tmp ( id integer NOT NULL DEFAULT nextval(‘cert_display_tmp2_id_seq‘::regclass), cert_id bigint, total_sample bigint NOT NULL DEFAULT 0, CONSTRAINT cert_display_tmp2_pkey PRIMARY KEY (id) )
该表的id字段是一个短整形,又是一个自增序列,怀疑问题出现在这个地方
integer类型的范围是( -2147483648 to +2147483647),于是查看了下一个序列值是‘2147483648’,正好超过了integer的范围
postgres=#=> select nextval(‘cert_display_tmp2_id_seq‘); nextval ------------ 2147483648 (1 row)
更改id的字段类型为bigint型,再次执行函数,无报错,故障解决。
alter table cert_display_tmp alter column id bigint
本文出自 “陌路,尽头” 博客,请务必保留此出处http://molu2013.blog.51cto.com/2615175/1829524
Postgresql 报整形字段“integer out of range”
标签:数据库 postgresql int
原文地址:http://molu2013.blog.51cto.com/2615175/1829524