2010-09-02 60 views
1

我的问题是关于一个数据库历史记录或事务日志表,它当前由mysql过程更新。每当我们在插入,更新或删除操作期间保留适当的表的历史记录时,该过程就由mysql触发器调用。就我们每个人都有很多表格而言,我们需要创建一个单独的触发器,例如对于“帐户表”,我们需要创建“accounts_insert,accounts_update和accounts_delete”触发器。通过触发器更新MySQL历史记录或事务日志表

问题是,每当我们改变“账户表”时,我们也必须修改适当的触发器。

有什么办法可以避免这种手动工作?在应用层/代码中实现它会更好吗?

回答

1

如果这是您的想法,那么没有“全局”触发器。

应用程序端日志记录是一种可能的解决方案。只要有可能,您都希望在交易中这样做。

其他可能的方法:

  • 创建一个脚本,将更新您的触发你。如果你的触发器通常是相似的,那么可以相当容易。使用information_schema数据库可能会对此有所帮助。
  • 解析一般查询日志(小心,启用此日志可以对服务器的性能大的负面影响)
+0

欣赏的答案。 我在考虑“其他可能的方法”#1 – VVP 2010-09-02 17:39:31