如何在 PostgreSQL 中重置自动生成的主键

How to reset the auto generated primary key in PostgreSQL

我的 class table topics 如下。主键是自动生成的序列号。在测试时,我从 table 中删除了行,并试图再次重新插入它们。 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?

但是为什么名字会是 uuidUUID 不是 integer 数字,也不是 serial。此外,当您写下时,还不完全清楚出了什么问题:

The UUID is not getting reset.

关于ALTER SEQUENCE ... RESTART

  • Postgres manually alter sequence