Python postgres未正确增加串行数据类型的my id

Python postgres未正确增加串行数据类型的my id,python,postgresql,Python,Postgresql,我的数据库中有500条记录,当我删除id=5,然后尝试重新插入同一条记录时,它没有正确更新序列。它插入一个新记录,其中id=505,而我的最大id是500。 我还使用以下查询更新事务前后的排序: 从表名称中选择setval(pg_get_serial_sequence('table_name','id'),max(id)) 不过,它并没有正确地递增序列 id bigserial主键不为空 任何帮助都将不胜感激。 谢谢删除已使用as序列填充列的行不会更新序列 如果需要无间隙订购编号,则不能使用序列

我的数据库中有500条记录,当我删除id=5,然后尝试重新插入同一条记录时,它没有正确更新序列。它插入一个新记录,其中id=505,而我的最大id是500。 我还使用以下查询更新事务前后的排序: 从表名称中选择setval(pg_get_serial_sequence('table_name','id'),max(id))

不过,它并没有正确地递增序列

id bigserial主键不为空

任何帮助都将不胜感激。
谢谢

删除已使用as序列填充列的行不会更新序列

如果需要无间隙订购编号,则不能使用序列

看哪个说:

因为nextval和setval调用永远不会回滚,所以 如果序列号的“无间隙”赋值是无效的,则不能使用对象 需要。可以通过使用“独占”创建无间隙分配 锁定包含计数器的桌子;但这一解决方案非常重要 比序列对象更昂贵,尤其是在许多事务 同时需要序列号


删除已使用as序列填充列的行不会更新序列

如果需要无间隙订购编号,则不能使用序列

看哪个说:

因为nextval和setval调用永远不会回滚,所以 如果序列号的“无间隙”赋值是无效的,则不能使用对象 需要。可以通过使用“独占”创建无间隙分配 锁定包含计数器的桌子;但这一解决方案非常重要 比序列对象更昂贵,尤其是在许多事务 同时需要序列号


Hello@pifor,实际上我是postgres的新手,没有理解您实际想要说的内容,因为当我尝试插入新值时,增量工作正常,但为什么它没有插入我在id=501处重新插入的记录。发布您的详细场景,包括BEGIN/COMMIT/ROLLBACK语句(如果有)。Hello@pifor,事实上,我是postgres的新手,并没有理解您实际想要说的内容,因为当我尝试插入新值时,增量工作正常,但为什么它没有插入我在id=501处重新插入的记录。发布您的详细场景,包括BEGIN/COMMIT/ROLLBACK语句(如果有)。