Sql 将Postgres自动增量值重置为0

Sql 将Postgres自动增量值重置为0,sql,postgresql,database-sequence,Sql,Postgresql,Database Sequence,我有一个表,有时我在内联编辑器中输入数据,在那里我手动添加id值,通常是自动递增的 在使用脚本自动生成ID4,然后内联添加ID5和ID6的情况下,每当我运行insert查询时,db都会尝试自动递增值4。但值5是由用户使用内联编辑器添加到数据库中的。在这种情况下,我使用了如下脚本 SELECT SETVAL('<tableName>_id_seq', (SELECT MAX(id) FROM <tableName>)); 然后自动递增值被分配给数据库当前包含的最大id值,

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

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

SELECT SETVAL('<tableName>_id_seq', (SELECT MAX(id) FROM <tableName>));
然后自动递增值被分配给数据库当前包含的最大id值,从而成功地自动递增插入查询


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

下面是一个示例,说明我如何使用sql从数据库重新启动索引。 我在重置用于单元测试api的实体时使用此代码

在我的数据库中,我有一个表终端:

它将创建一个带有主键terminal_id_seq的表


希望能有所帮助。

下面是一个示例,说明如何使用sql从数据库中重新启动索引。 我在重置用于单元测试api的实体时使用此代码

在我的数据库中,我有一个表终端:

它将创建一个带有主键terminal_id_seq的表


希望有帮助。

看来我找到了一个方便的答案

ALTER SEQUENCE <tableName>_id_seq RESTART;

希望这有帮助

看来我找到了一个方便的问题答案

ALTER SEQUENCE <tableName>_id_seq RESTART;

希望这对您有所帮助

如上所述,有很多方法可以做到这一点,但是如果您想要一种更为幂等的方法来做到这一点,那么我建议您:

选择SETVAL''u id_seq',从中选择MAXid,1


这样,无论表中是否有行,都可以使用相同的代码,这样做是正确的

如上所述,有许多方法可以实现这一点,但是如果您想要一种更为幂等的方法,那么我建议您:

选择SETVAL''u id_seq',从中选择MAXid,1


这样,无论表中是否有行,都可以使用相同的代码,这样做是正确的

使用setval'..',0有什么问题?使用setval'..',0有什么问题?用1重新启动ALTER SEQUENCE terminal_id_seq;这句话正是我想要的。ThanksALTER序列终端\u id_seq用1重新启动;这句话正是我想要的。谢谢
ALTER SEQUENCE <tableName>_id_seq RESTART;