Python 如何在SQLAchemy中使用Oracle触发器
我已经使用SQLAlchemy中的ORM定义了我的数据模型。我希望我的所有表格都包括三列Python 如何在SQLAchemy中使用Oracle触发器,python,oracle,triggers,sqlalchemy,Python,Oracle,Triggers,Sqlalchemy,我已经使用SQLAlchemy中的ORM定义了我的数据模型。我希望我的所有表格都包括三列 在 上次更新的 更新人 数据模型将部署在Oracle数据库架构中。我可以做类似的事情 from sqlalchemy import Column, DateTime, String from sqlalchemy.ext.declarative import as_declarative @as_declarative(bind=engine) class Base(object): creat
在
上次更新的
更新人
from sqlalchemy import Column, DateTime, String
from sqlalchemy.ext.declarative import as_declarative
@as_declarative(bind=engine)
class Base(object):
created_at = Column(DateTime, default=datetime.datetime.now(), nullable=False)
updated_at = Column(DateTime, onupdate=datetime.datetime.now(), nullable=False)
updated_by = Column(String, nullable=False)
但则不使用数据库默认时区,用户在插入/更改数据时必须手动识别自己。数据也可以被操纵
我更愿意使用一个触发器,我知道这在Oracle中是可能的,但如何在SQLAlchemy中实现呢?如果可能的话,我强烈希望在SQLAlchemy中定义整个数据模型设计。我已经看到了这一点,但这还不足以解决我的问题。需要更具体的指导至少SQLAlchemy部分在@APC链接的副本中。其余部分是特定于Oracle的。顺便说一句,您的默认设置是错误的:您通过调用
datetime.now()
then and there将它们设置为固定的datetime。您应该传递函数本身,即default=datetime.now
。如果需要,还可以使用默认时区正确的SQL函数表达式。类似于default=func.now()
的内容,以及您可能需要的内容。