当前位置: 首页 > 知识库问答 >
问题:

PostgreSQL中的重置序列

赏彭薄
2023-03-14

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

数据类型:整数

默认:nextval(items_id_seq::regclass)

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

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

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

有没有办法在执行jpaRepository.deleteAllInBatch()时重新初始化id序列,以便记录再次以id=0开始?

共有1个答案

沈飞跃
2023-03-14

这可能对你有帮助

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

了解更多细节

如何在postgres中重置序列并用新数据填充id列?

 类似资料:
  • 我正在测试一个删除主键列id的迁移(我希望使用外键作为主键)。当我运行并恢复迁移时,我看到表的状态是相同的,只是id列现在是最后一个。 它会以任何方式改变我的数据库的行为吗?我应该在迁移还原代码中恢复列顺序吗?

  • 我使用Spring boot2与Spring data jpa、hibernate和posgres一起使用。我需要一年中每1天重置一个序列,因为我们使用当前”序列id。 有没有办法用jpa重置序列?

  • 问题内容: 我的数据库布局需要为每个新客户创建新的架构。目前,我使用在网上找到的内部函数,并对其进行了一些修改。 该脚本的问题在于新架构中的表继续使用源架构的序列。有没有办法使用sql语句(或其他可靠的方法)为新创建的表获取序列的新副本(甚至是复制整个架构的另一种可靠的方法)? 问题答案: 因此,经过一番思考后,我继续了更新我的第一篇文章中提到的sql函数,因此现在看起来像这样: 对于所有人来说,

  • 问题内容: 我的表有一堆列,格式如下: 我想重命名它们只是添加一个前缀,如下所示: 我有 很多 比三列更用这种方式来命名。如果我只有三个人,那我会手动一个接一个地做。 实现这一目标的最快/最有效的方法是什么? 问题答案: …对于所有此类批量管理操作,您可以使用PostgreSQL系统表为您生成查询,而无需手动编写查询 在您的情况下,它将是: 这将为您提供一组字符串,这些字符串是SQL命令,例如:

  • 可能重复: PostgreSQL是否支持“重音不敏感”排序规则? 我试图删除重音,所以当我选择时,它会忽略它们。 例子: 它返回: 或者类似的东西。 我发现这些函数无法工作,我想这可能是因为我使用的是Struts 1。十、 请检查它们,告诉我哪里错了,或者我应该使用什么其他功能。 第一个函数 第二个功能 在NetBeans中运行文件时,这两个函数都会生成以下错误:

  • 问题内容: 我正在与Spring和Hibernate一起使用Java开发Web应用程序。假设我有一张桌子。当我从该表中删除一些记录时,有时我需要重置主键字段的值。 假设我在一个表中有10条记录,而我删除了最后5条记录。现在,当我插入新记录时,主键字段的值应从开始,但应从开始。 如果需要在MySql 中的()处启动主键值,则只需执行以下SQL语句。 这将自动重置价值,以该字段的值(在概念是不正确的,