Я хочу создать небольшую базу данных, которая предоставляет информацию о статистике загрузки различных приложений.
Я хочу, чтобы БД обновляла строку только в том случае, если значение столбца для '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»