检查更新是否新值高于旧值(sqlite)

时间:2019-06-13 13:11:54

标签: python-3.x sqlite sqlalchemy

我想创建一个小数据库,以提供有关不同应用程序下载统计信息的信息。 我希望数据库仅在“ 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)

另外,我想知道,如果您认为使用日期,应用程序,平台和立场中的组合主键代替“ id”会很聪明

0 个答案:

没有答案