gpt4 book ai didi

postgresql - INSERT 失败,因为主键已经存在

转载 作者:行者123 更新时间:2023-11-29 12:32:45 26 4
gpt4 key购买 nike

我正在使用 PostgreSQL 9.4 和 pgAdminIII 1.20 客户端。在特定表上启动 INSERT 时,我收到一条错误消息:Details: the key (gid)=(31509) already exists。 (SQL 状态:23505)

为了让序列完成工作,我没有在命令中输入 gid 值:

INSERT INTO geo_section (idnum, insee, ident) VALUES (25, '015233', '') ;

序列定义如下:

CREATE SEQUENCE geo_section_gid_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 31509
CACHE 1;
ALTER TABLE geo_section_gid_seq
OWNER TO postgres;

以下查询返回 34502:

SELECT max(gid) FROM geo_section ;

因此,我试图改变序列以便从 34503 开始序列:

ALTER SEQUENCE geo_section_gid_seq START 34503 ;

我收到一条成功消息,说明查询已正确执行。但是序列 START 参数仍然具有 31509 值...

最佳答案

要更改序列的下一个值,请使用 setval 函数:

     select setval('geo_section_gid_seq'::regclass,34503,false)

false:如果你想要下一个值是 34503

true :如果你希望下一个值是 34504

关于postgresql - INSERT 失败,因为主键已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38050060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com