postgreSQL:主键不是从 1 开始

postgreSQL: primary key doesn't start on 1

我使用查询 t_id SERIAL PRIMARY KEY 在数据库的 table 中创建了一个名为 t_id 的主键。 第一次1开的很好,后来我删了所有的数据,从那以后,虽然我设置为1,但还是2开始。

这是我在 seq 上所做的截图 - pgAdmin4 上的定义:

有人知道问题出在哪里吗?

非常感谢!!

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

doc 对此主题很有帮助。

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

要重置序列以便下次调用它时 returns 1,您可以这样做

SELECT setval('my_sequence_name', 1, false);  

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

Postgres sequence manipulation functions documentation