【发布时间】:2017-04-30 22:13:54
【问题描述】:
我想强制一个表的自增字段为某个值,不幸的是我的查询似乎失败了
ALTER SEQUENCE categories_categoryid_seq RESTART WITH 1;
ERROR: relation "your_sequence_name" does not exist
我的表categories 有以下列:
- 类别ID
- 功能
- 姓名
编辑:我的创建查询:
-- 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;
【问题讨论】:
-
你确定这是序列的名称吗?您是否使用 pgAdmin 或类似工具检查过它?如果没有,请尝试to check it with a query
-
添加架构...
-
是的,pgadmin 已打开。例如,以下查询完美运行:SELECT * FROM public.categories ORDER BY categoryid ASC
-
显然没有同名的序列。 edit 您的问题,并向我们展示
categories的完整create table语句和序列的create语句。 -
列的定义没有默认值,也不是
serial。为什么你期望序列首先存在? (另外:将 varchar 限制为 255 个字符根本没有性能或存储优势。255 并不是能够加快处理速度的魔法限制)
标签: sql postgresql auto-increment reset