You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Postgres IDENTITY列重置为初始值1?

重置Postgres IDENTITY列后插入ID为1的解决方法

这不是Postgres的bug,是你使用setval时的默认行为导致的:当执行setval(pg_get_serial_sequence('test', 'id'), 1)时,默认第三个参数is_called为true,这会告诉PostgreSQL值1已经被使用过,所以下一次插入数据生成ID时,会返回2。

要让后续插入生成的ID为1,有两种可行方法:

方法一:调整setval的参数

调用setval时显式将第三个参数设为false,表示值1尚未被使用:

SELECT setval(pg_get_serial_sequence('test', 'id'), 1, false);

方法二:使用IDENTITY列专属的重置命令

针对GENERATED ALWAYS AS IDENTITY类型的列,更规范的方式是用ALTER TABLE命令直接重置序列起始值:

ALTER TABLE test ALTER COLUMN id RESTART WITH 1;

执行上述任意一种操作后,再插入数据,生成的ID就会是1了。

内容的提问来源于stack exchange,提问作者user14381362

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 02:31:00