В моем проекте flask мне нужна таблица с уникальным ограничением на столбец, если значения в другом столбце идентичны. Поэтому я пытаюсь сделать что-то подобное:
if premiumuser_id = "a value I don't know in advance" then track_id=unique
Это похоже на Создание частичного уникального индекса с sqlalchemy на Postgres, но я использую sqlite (где частичные индексы также должны быть возможно: https://docs.sqlalchemy.org/en/13/dialects/sqlite.html?highlight=partial%20indexes#partial -индекс ) и условие другое.
Пока мой код выглядит так:
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",
)
Все примеры, которые я нашел, работают с логическими или фиксированными значениями. Как должен выглядеть синтаксис для sqlite_where для условия: premiumuser_id = "значение, которое я не знаю заранее"?