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