我想在 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)
那可能吗?
我想在 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)
那可能吗?
您可以使用混合属性来做到这一点:
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