PostgreSQL报错MAXVALUE(2147483647)超出smallint序列范围问题咨询
报错原因
你的建表脚本中public.working_types表存在语法错误,直接触发了该报错:
- 你重复定义了
id字段,第一个id字段类型为smallint,但你为其关联的自增序列设置的最大值MAXVALUE 2147483647超出了smallint类型的取值范围。PostgreSQL中smallint为2字节有符号整数,合法最大值仅为32767,这就是报错的直接触发点。 - 同一张表重复声明
id字段本身也属于非法建表语法。
修复方法
将public.working_types的建表语句替换为修正后的版本即可:
CREATE TABLE IF NOT EXISTS public.working_types ( id smallint NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 32767 CACHE 1 ), name character varying(50) NOT NULL, PRIMARY KEY (id) );
内容的提问来源于stack exchange,提问作者Renat Mixayilov
相关产品推荐
相关产品推荐

