1

我使用查询在 DB 表中创建了一个名为 t_id 的主键 t_id SERIAL PRIMARY KEY。第一次,它从 1 开始很好。然后我删除了所有数据,从那时起,它从 2 开始,即使我将它设置为 1。

这是我在 seq - definition on pgAdmin4 上所做的截图:

在此处输入图像描述

任何人都知道问题出在哪里?

非常感谢!!

4

2 回答 2

0

当前值为 1,因此将提供的下一个值为 2。这是预期的。

文档对这个主题很有帮助。

请记住,序列将始终为您提供以前未使用过的值。所以如果你插入 10 行,然后删除它们,下一个序列值仍然是 11(最后提供的值 + 1)

要重置序列,以便下次调用它时返回 1,您可以

SELECT setval('my_sequence_name', 1, false);  
于 2019-05-29T12:33:33.703 回答
0

t_id是主键自动递增的序列类型。这些是有序的,您可以使用序列操作函数设置下一个序列的值。

Postgres 序列操作函数文档

于 2019-05-29T12:40:18.287 回答