侦听简单表上的插入/更新事件

时间:2019-04-18 14:32:35

标签: python mysql sqlalchemy

我有一个简单的表定义:

my_table = Table(
    'table_name', db.Model.metadata,
    Column('id1', Integer, ForeignKey('other1.id'), nullable=False),
    Column('id2', Integer, ForeignKey('other2.id'), nullable=False)
)

我想在上面注册before_insertbefore_update事件。

但是,我找不到任何这样的示例,并且想知道它是否必要。尝试显式调用event.listen会失败,并显示错误,并且在调试器中,我可以看到表类仅具有以下要监听的事件:

 'after_create',
 'after_drop',
 'after_parent_attach',
 'before_create',
 'before_drop',
 'before_parent_attach',
 'column_reflect'

有没有一种方法可以监听表而不将其转换为完整的模型?

1 个答案:

答案 0 :(得分:0)

尝试listens_for。似乎为我工作!

@sa.event.listens_for(my_table, 'after_create') 
def after_create_my_table(target, connection, **kw): 
    pass