【发布时间】:2018-04-11 04:28:51
【问题描述】:
我的表中有一个主键,如下所示:
CREATE TABLE a (
id serial NOT NULL,
valuea citext NOT NULL,
CONSTRAINT a_pkey PRIMARY KEY (id),
);
表格有以下几行:
id value
198 b
199 j
我无意中做了这个插入
Insert Into a(id,valuea) values (200,'hello');
现在,当我尝试以正确的方式进行另一次插入时:
Insert Into a(valuea) values ('b');
我希望它插入 (201,b),但由于上次手动插入,串行计数器不知道 200 已被使用。
我明白了:
错误:重复键值违反唯一约束 "a_pkey" 详细信息:密钥 (id)=(200) 已存在。
我理解这个错误。基本上它发生是因为我最后一次插入没有使用串行,因此它的计数器没有上升。
不知道怎么解决?
如何告诉串行计数器从 201 开始?
【问题讨论】:
-
不要手动维护您的自动增量列。你没有 Postgres 聪明。
标签: sql postgresql