PostgreSQL 14中ALTER SEQUENCE语句语法错误求助
问题解决:PostgreSQL序列重启报错
核心原因
你错误使用了不存在的序列名ok_id_seq。这个命名格式是PostgreSQL为SERIAL或IDENTITY类型字段自动生成的序列规则(表名_字段名_seq),但你是手动创建了序列id_seq并绑定到表字段,数据库中根本不存在ok_id_seq这个序列。
正确执行语句
直接使用你手动创建的序列名执行重启操作:
ALTER SEQUENCE id_seq RESTART;
若需明确指定schema(避免多schema环境下的歧义),可补充schema名称:
ALTER SEQUENCE public.id_seq RESTART;
可选优化方案
如果希望序列与表字段自动关联,后续能使用更直观的命名操作,可以改用IDENTITY类型创建字段,PostgreSQL会自动生成符合表名_字段名_seq规则的序列:
CREATE TABLE "public"."ok" ( "id" int8 GENERATED ALWAYS AS IDENTITY PRIMARY KEY );
此时执行ALTER SEQUENCE ok_id_seq RESTART;就能正常生效。
内容的提问来源于stack exchange,提问作者endermaanny monooo
相关产品推荐
相关产品推荐

