【问题标题】:Create MySQL trigger before update any table在更新任何表之前创建 MySQL 触发器
【发布时间】:2012-11-10 04:48:39
【问题描述】:

我想创建一个触发器来拦截数据库中任何表的任何更新,有没有办法不指定正在为其创建触发器的表以便它可以拦截所有更新?

类似:

 create trigger interceptor
 after update on ANY_TABLE
 ....

【问题讨论】:

  • 不,您必须显式声明触发器表。但是如果你写的一般,你可以重复使用触发过程。

标签: mysql triggers interceptor


【解决方案1】:

这是不可能的,您必须为每个表创建单独的触发器。

但是,正如上面的评论所说,每个触发器都可以调用相同的存储过程:Need an abstract trigger in MySQL 5.1 to update an audit log

您可以更进一步,使用information_schema 创建一个循环遍历数据库中所有表的过程,自动删除然后(重新)创建触发器,然后在每次更新数据库结构时调用此脚本。

【讨论】:

    猜你喜欢
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    • 2021-09-29
    • 2013-07-04
    • 2013-10-23
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多