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