是否可以在SQLAlchemy中创建上次插入/更新时将随时间自动填充的Column?
我创建了从基类继承的模型
class Base(object):
def __tablename__(self):
return self.__name__.lower()
id = Column(Integer, primary_key=True)
last_time = Column(TIMESTAMP, server_default=func.now())
Base = declarative_base(cls=Base)
class EntityModel(Base):
__tablename__ = 'entities'
settlement_id = Column(Integer, ForeignKey('settlements.id'), nullable=False)
type = Column(String(20), nullable=False)
level = Column(Integer, nullable=False, default=0)
energy = Column(Float, nullable=False, default=0)
position_x = Column(Integer, default=0)
position_y = Column(Integer, default=0)
def __repr__(self):
return "<Entity('%s')>" % (self.type)
每次更新EntityModel时,我都想在
last_time
上更新system function.now()
。我可以使用触发器在数据库级别执行此操作,但如果可能的话,我宁愿在应用程序级别执行操作。 最佳答案
在基类中,在最后一条语句中添加onupdate,如下所示:
last_time = Column(TIMESTAMP, server_default=func.now(), onupdate=func.current_timestamp())
关于python - 是否可以在SQLAlchemy中创建列,该列在上次插入/更新时会随时间自动填充?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13978554/