将 Postgres 自动增量值重置为 0

2024-04-26

我有一个表,有时我会在内联编辑器中输入数据,在其中手动添加通常自动递增的 id 值。

在使用脚本自动生成 id 4,然后内联添加 id 5 和 6 的情况下,每当我运行插入查询时,数据库都会尝试自动递增值 4。但是值 5 已由用户添加到数据库中使用内联编辑器。在这种情况下,我使用了如下脚本

SELECT SETVAL('<tableName>_id_seq', (SELECT MAX(id) FROM <tableName>));

然后,自动递增值被分配给数据库当前包含的最大id值,从而成功地自动递增插入查询。

我面临的问题是,当我清除数据库时,是否有一种方法可以将自动增量值重置为 0 或其他值,以便下一个插入查询将开始向 id 列插入值 1?


似乎我已经找到了我的问题的方便答案

ALTER SEQUENCE <tableName>_id_seq RESTART;

如果要从特定索引重新启动id(例如,需要更新表packing_list和索引为94的列uid),可以使用以下查询

ALTER SEQUENCE packing_list_item_uid_seq RESTART WITH 94;

希望这可以帮助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Postgres 自动增量值重置为 0 的相关文章

随机推荐