Java 在PostgreSQL中重置序列 设置:

Java 在PostgreSQL中重置序列 设置:,java,spring-boot,jpa,Java,Spring Boot,Jpa,我确实在PostgreSQL中创建了一个表,其中包含一个列id序列主键。 查看pgAdmin中列的属性,我可以看到: 数据类型:整数 默认值:nextval('items\u id\u seq'::regclass) (因此,如果我没有弄错的话,我确实是用“serial”关键字创建的。) 现在在我的后端代码中,我使用了方法:jpaRepository.deleteAllInBatch(),它“截断”了我的整个表 问题 在这次调用之后,我再次将记录添加到表中,我可以看到下面记录的id与表中最后一条

我确实在PostgreSQL中创建了一个表,其中包含一个列id序列主键。 查看pgAdmin中列的属性,我可以看到:

数据类型:整数

默认值:nextval('items\u id\u seq'::regclass)

(因此,如果我没有弄错的话,我确实是用“serial”关键字创建的。)

现在在我的后端代码中,我使用了方法:jpaRepository.deleteAllInBatch(),它“截断”了我的整个表

问题 在这次调用之后,我再次将记录添加到表中,我可以看到下面记录的id与表中最后一条记录的id相同

问题: 在执行jpaRepository.deleteAllInBatch()时,是否有方法重新初始化id序列,以便记录再次以id=0开头?

这可能会对您有所帮助

ALTER SEQUENCE seq RESTART WITH 1;
UPDATE t SET idcolumn=nextval('seq');
更多细节


您可以重置序列,但何必麻烦呢?你不应该关心实际值,只关心它们是主键。看看这个问题:我很麻烦,因为首先我不使用这个主键作为外键,所以重置序列不会产生问题。我有好几次删除1000多条记录,然后再添加1000多条记录。我担心今年不会,但也许明年我会达到整数序列极限是的,我想我会每年左右自己手动完成。谢谢