【问题标题】:postgres how to reset or update index(sequence) of tablepostgres如何重置或更新表的索引(序列)
【发布时间】:2016-04-15 13:27:20
【问题描述】:

我删除了表中的 2000 行,然后我插入了相同的 2000 条记录,但它们的索引(id 自动递增字段)从 2001 年开始, 现在我想将那些索引 2001 - 4000 更新为 1-2000

【问题讨论】:

  • 一个简单的更新不起作用?
  • 您使用的是 MySQL 还是 Postgresql?不要标记未涉及的产品...
  • 为什么要重新编号?无论如何,这些 id 对你没有任何意义。
  • 重置序列。 som google research 将为您提供答案。
  • 我没有,但重置序列不适用于现有数据(ID)@RemigiusStalder

标签: sql postgresql database-sequence


【解决方案1】:

要更新您的 ID,请运行以下命令。

UPDATE table SET id = id - 2000;

这将更新表中记录的 id,然后您需要更新表的序列

ALTER SEQUENCE table_id_seq RESTART WITH 2001;

这将允许您插入 ID 为 2001

的数据

另一种方式,删除表中的所有记录,更新表的顺序,重新插入数据。

希望这会有所帮助。

【讨论】:

  • 感谢您的回答,但它不适用于其他表引用的记录!你有什么想法吗?!!
  • @user3321823,您可以在引用表的外键上使用ON UPDATE CASCADE。每当您更新引用的表时,这也会更新引用。参考:PostgresqlStackoverflow
猜你喜欢
  • 2016-12-23
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多