postgres如何重置或更新表的索引(序列)

9 浏览
0 Comments

postgres如何重置或更新表的索引(序列)

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

0
0 Comments

问题的原因是需要重置或更新表的索引(序列)。

解决方法有两种:

1. 使用以下命令更新id:

UPDATE table SET id = id - 2000;

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

ALTER SEQUENCE table_id_seq RESTART WITH 2001;

这将允许您插入id为2001的数据。

2. 另一种方法是删除表中的所有记录,然后更新表的序列并重新插入数据。

如果问题是与其他表相关的记录,您可以在引用表的外键上使用ON UPDATE CASCADE。这将在更新引用表时同时更新引用。参考:PostgresqlStackoverflow

0