Проверьте при обновлении, если новое значение превышает старое значение (sqlite) - PullRequest
0 голосов
/ 13 июня 2019

Я хочу создать небольшую базу данных, которая предоставляет информацию о статистике загрузки различных приложений. Я хочу, чтобы БД обновляла строку только в том случае, если значение столбца для 'stand' больше старого.

Я думал об использовании ограничения CHECK. Но я не знаю, как получить доступ к старому значению.

псевдокод: CHECK (stand.new_value > stand.old_value)

Вот как создается схема базы данных:


from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, Date

engine = create_engine("sqlite:///foo.db", echo=True)
Base = declarative_base()

class Downloads(Base):
    __tablename__ = 'downloads'

    id = Column(Integer, primary_key=True)
    date = Column(Date)
    app = Column(String)
    plattform = Column(String)
    stand = Column(Date)
    count = Column(Integer)

    def __repr__(self):
        return "<Downloads(date='%s', app='%s', count='%d')>".format(self.date, self.app, self.count)

Base.metadata.create_all(engine)

Также я хотел бы знать, если вы думаете, что было бы разумно использовать составной первичный ключ от date, app, plattform и stand вместо «id»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...