在 postgresql 中重置自动增量计数器

Reset auto increment counter in postgresql

我想强制 table 的自动递增字段为某个值,不幸的是我的查询似乎失败了

ALTER SEQUENCE categories_categoryid_seq RESTART WITH 1;
ERROR:  relation "your_sequence_name" does not exist

我的 table categories 有以下列:

编辑:我的创建查询:

-- Table: public.categories

-- DROP TABLE public.categories;

CREATE TABLE public.categories
(
    categoryid bigint NOT NULL,
    functions character varying(255) COLLATE pg_catalog."default" NOT NULL,
    name character varying(255) COLLATE pg_catalog."default" NOT NULL,
    CONSTRAINT categories_pkey PRIMARY KEY (categoryid)
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.categories
    OWNER to postgres;

您可以验证 DEFAULT 子句中定义的名称序列:

SELECT column_name, column_default
FROM information_schema.columns
WHERE table_schema = 'myschema'
   AND table_name = 'categories'
ORDER BY ordinal_position;

然后你就知道要重置哪个序列了!

在上述问题中没有创建序列,因为您没有添加序列或序列:(根据脚本)。 bigint 必须是 bigserial 或 serial。

如果您想检查序列是否已创建 运行 此脚本。

Select column_default 
from information_schema.columns 
where table_name = 'categories' and column_name = 'categoryid';