SQLAlchemy:字段具有特定值的部分唯一约束

2024-10-01 17:27:58 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的flask项目中,如果其他列中的值相同,我需要一个列上具有唯一约束的表。所以我试着这样做:

if premiumuser_id = "a value I don't know in advance" then track_id=unique

这与Creating partial unique index with sqlalchemy on Postgres类似,但我使用sqlite(部分索引也应该是可能的:https://docs.sqlalchemy.org/en/13/dialects/sqlite.html?highlight=partial%20indexes#partial-indexes),并且条件不同

到目前为止,我的代码如下所示:

class Queue(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    track_id = db.Column(db.Integer)

    premiumuser_id = db.Column(
        db.Integer, db.ForeignKey("premium_user.id"), nullable=False
    )

    __table_args__ = db.Index(
        "idx_partially_unique_track",
        "track_id",
        unique=True,
        sqlite_where="and here I'm lost",
    )

我发现的所有示例都使用布尔值或固定值。对于条件:premiumuser\u id=“我事先不知道的值”,sqlite\u where的语法应该是什么样的


Tags: 项目idtrueflaskdbsqlitesqlalchemycolumn

热门问题