Postgres 添加标识导致 ERROR START 值 (0) 不能小于 MINVALUE (1)

Pos*_*Guy 3 sql postgresql alter

尝试运行这个,因为我希望自动生成的 ID 从 0 开始

alter table gender
alter column gender_id ADD GENERATED ALWAYS AS IDENTITY (START WITH 0 INCREMENT BY 1)
Run Code Online (Sandbox Code Playgroud)

并得到错误: START value (0) cannot be less than MINVALUE (1)

我还不擅长 PostgreSQL,所以不知道如何让它从 0 开始递增。

Akh*_*hra 5

所有身份列都会在后端创建一个序列。在您的sequence_option身份栏中,您没有提供,这MINVALUE就是为什么默认情况下它会考虑MINVALUEas 1。所以你必须明确定义MINVALUE如下:

ALTER TABLE gender
ALTER COLUMN gender_id ADD GENERATED ALWAYS AS IDENTITY (MINVALUE  0 START WITH 0 INCREMENT BY 1)
Run Code Online (Sandbox Code Playgroud)