在SQLite数据库中使用SQLAlchemy生成顺序用户ID。

2 投票
1 回答
796 浏览
提问于 2025-04-18 15:00

我需要给访客用户生成一些ID,比如guest1、guest2等等。我该如何使用sqlalchemy让sqlite自动生成这样的ID呢?

1 个回答

1

如果你像这样给一个对象指定一个id:

class Guest(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    guest_id = db.Column(db.String(15))

数据库会自动给这个id分配一个递增的整数,也就是说,每次新增一个对象,id的值会比上一个大1。

更新一下:这个id只有在对象被保存到数据库后才会被设置。所以,如果你想实现你想要的功能,你需要在对象被保存后调用一个方法。

def create_guest(self):
    db.session.add(self)
    db.session.commit()
    self.guest_id = 'guest{}'.format(self.id)

撰写回答