我使用查询在 DB 表中创建了一个名为 t_id 的主键 t_id SERIAL PRIMARY KEY
。第一次,它从 1 开始很好。然后我删除了所有数据,从那时起,它从 2 开始,即使我将它设置为 1。
这是我在 seq - definition on pgAdmin4 上所做的截图:
任何人都知道问题出在哪里?
非常感谢!!
我使用查询在 DB 表中创建了一个名为 t_id 的主键 t_id SERIAL PRIMARY KEY
。第一次,它从 1 开始很好。然后我删除了所有数据,从那时起,它从 2 开始,即使我将它设置为 1。
这是我在 seq - definition on pgAdmin4 上所做的截图:
任何人都知道问题出在哪里?
非常感谢!!
当前值为 1,因此将提供的下一个值为 2。这是预期的。
该文档对这个主题很有帮助。
请记住,序列将始终为您提供以前未使用过的值。所以如果你插入 10 行,然后删除它们,下一个序列值仍然是 11(最后提供的值 + 1)
要重置序列,以便下次调用它时返回 1,您可以
SELECT setval('my_sequence_name', 1, false);
您t_id
是主键自动递增的序列类型。这些是有序的,您可以使用序列操作函数设置下一个序列的值。