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
是主键自增序列类型。这些是有序的,你可以使用序列操作函数设置下一个序列的值。
我使用查询 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
是主键自增序列类型。这些是有序的,你可以使用序列操作函数设置下一个序列的值。