如何在 PostgreSQL 11.1 中将现有列更改为 Identity

Nay*_*ani 9 postgresql ddl identity

我想将我现有的列更改为 Postgres 数据库中的自动标识。
我试过下面的脚本,但它不起作用。
如果您有相同的解决方案,请
告诉我我不想使用 postgres SEQUENCE。我想使用GENERATED ALWAYS AS IDENTITY

ALTER TABLE public.patient ALTER COLUMN patientid Type int4 
USING patientid::int4 GENERATED ALWAYS AS IDENTITY;
Run Code Online (Sandbox Code Playgroud)

kli*_*lin 10

按照文档

ALTER TABLE patient 
    ALTER patientid SET NOT NULL,  -- optional
    ALTER patientid ADD GENERATED ALWAYS AS IDENTITY 
        (START WITH 2);  -- optional
Run Code Online (Sandbox Code Playgroud)

NOT NULL如果该列还没有约束,则添加约束。可选子句START WITH start更改序列的记录起始值。

DB<>Fiddle 中测试它