我想创建一个触发器来拦截数据库中任何表的任何更新,有没有办法不指定正在为其创建触发器的表,以便它可以拦截所有更新?
就像是:
create trigger interceptor
after update on ANY_TABLE
....
我想创建一个触发器来拦截数据库中任何表的任何更新,有没有办法不指定正在为其创建触发器的表,以便它可以拦截所有更新?
就像是:
create trigger interceptor
after update on ANY_TABLE
....
这是不可能的,您必须为每个表创建单独的触发器。
然而,正如上面的评论所说,每个触发器都可以调用相同的存储过程:在 MySQL 5.1 中需要一个抽象触发器来更新审计日志
您可以更进一步,创建一个循环遍历数据库中所有表的过程,使用information_schema
、删除然后(重新)自动创建触发器,然后在每次更新数据库结构时调用此脚本。