如何在SQLAlchemy中检测SQL插入

时间:2013-12-29 23:24:18

标签: events insert sqlalchemy

您好我使用SQLAlchemy作为Web应用程序。我想听一个事件'after_insert'。

class MyApp(Base):
    ...

def listen_after_insert(*args):
    ...

event.listen(MyApp, 'after_insert', listen_after_insert)

如果我在会话中添加了一个新应用,那就是

session.add(MyApp(...))
session.commit()

但是如果插入来自另一个应用程序(例如:psql for postgres驱动程序),它就不起作用了。

如果插入来自其他应用程序,谁知道如何获得该事件?

1 个答案:

答案 0 :(得分:1)

您不能,事件是应用程序的内部事件。如果要检测外部更改,可以编写一个触发器函数,甚至可能在PL / Python中,以某种方式在数据库级别发生某些事件时通知您的应用程序。