Sql 将Postgres自动增量值重置为0
我有一个表,有时我在内联编辑器中输入数据,在那里我手动添加id值,通常是自动递增的 在使用脚本自动生成ID4,然后内联添加ID5和ID6的情况下,每当我运行insert查询时,db都会尝试自动递增值4。但值5是由用户使用内联编辑器添加到数据库中的。在这种情况下,我使用了如下脚本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值,
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;