gpt4 book ai didi

python - 是否可以在 SQLAlchemy 中创建列,该列将在上次插入/更新时自动填充时间?

转载 作者:IT老高 更新时间:2023-10-28 22:24:22 30 4
gpt4 key购买 nike

是否可以在 SQLAlchemy 中创建列,该列将在上次插入/更新时自动填充时间?

我创建了模型,继承自基类

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 时,我都希望在 system function.now() 上更新 last_time。我可以使用触发器在数据库级别执行此操作,但如果可能的话,我宁愿在应用程序级别执行此操作。

最佳答案

在基类最后一条语句中添加onupdate如下:

from sqlalchemy.sql import func

last_time = Column(TIMESTAMP, server_default=func.now(), onupdate=func.current_timestamp())

关于python - 是否可以在 SQLAlchemy 中创建列,该列将在上次插入/更新时自动填充时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13978554/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com