1

我想在 SQLAlchemy 中的字段 id 上使用自动增量选项,而不将列设置为主键。像这样的东西:

class CaseModel(db.Model):
__tablename__ = 'case'

unique_id = db.Column(UUID(as_uuid=True), unique=True, nullable=False, primary_key=True)
id = db.Column(db.Integer(), autoincrement=True)

那可能吗?

4

1 回答 1

0

您可以使用混合属性来做到这一点:

class CaseModel(db.Model):
    __tablename__ = 'case'
    CURRENT_ID_VALUE = 1

    unique_id = db.Column(UUID(as_uuid=True), unique=True, nullable=False, primary_key=True)
    _id = db.Column(db.Integer())

    @hybrid_property
    def id(self):
        return self._id

    @id.setter
    def id(self, _):
        self._id = CaseModel.CURRENT_ID_VALUE
        CaseModel.CURRENT_ID_VALUE += 1
于 2019-11-14T11:21:58.497 回答