我可以在mysql的一个Trigger声明中定义多个事件吗?

Sil*_*bel 4 mysql sql triggers

这是我的要求,我有一个mysql表,任何更改(插入/删除/更新)应该以完全相同的方式处理.根据mysql文档创建触发器语法如下:

    CREATE
     [DEFINER = { user | CURRENT_USER }]
     TRIGGER trigger_name
     trigger_time **trigger_event**
     ON tbl_name FOR EACH ROW
     trigger_body
Run Code Online (Sandbox Code Playgroud)

当我试图放置多个事件时,它抛出语法错误.一种解决方案是我可以编写一个过程和3个触发器(每个事件一个)并从所有触发器调用相同的过程.

这有什么复杂的解决方案?

spe*_*593 8

不.只支持一个"事件".触发,必须为BEFOREAFTER之一INSERT,UPDATE,DELETE.

如果你有很多"共享"的逻辑,你可以编写一个过程,并从触发器的主体调用该过程.

对此的复杂解决方案是使用不同的DBMS.否则,您必须在MySQL支持的范围内工作.