问题描述
我的表 topics
类如下。主键是自动生成的序列键。在测试时,我从表中删除了行并尝试再次重新插入它们。 UUID 未重置。
class Topics(db.Model):
""" User Model for different topics """
__tablename__ = 'topics'
uuid = db.Column(db.Integer,primary_key=True)
topics_name = db.Column(db.String(256),index=True)
def __repr__(self):
return '<Post %r>' % self.topics_name
我尝试了以下命令来重置密钥
ALTER SEQUENCE topics_uuid_seq RESTART WITH 1;
它没有用。
我将不胜感激任何形式的建议!
解决方法
如果它确实是 serial
ID,您可以使用以下命令重置拥有的 SEQUENCE
:
SELECT setval(pg_get_serial_sequence('topics','uuid'),max(uuid)) FROM topics;
见:
How to reset postgres' primary key sequence when it falls out of sync?
但是为什么名称会是 uuid
? UUID 不是 integer
数字,也不是 serial
。此外,当您编写时,也不完全清楚出了什么问题:
UUID 未重置。
关于ALTER SEQUENCE ... RESTART
: