8.1.1 为什么使用触发器
2025年09月21日
8.1.1 为什么使用触发器
强制业务规则(例如前面所举的例子)只是使用触发器的原因之一。出于以下某种目的,可能都会考虑使用这种方便的特性。
➢ 审计跟踪。假设使用MySQL记录Apache流量日志(例如使用Apache mod_log_sql模块),但还希望创建另外一个特殊的日志表只跟踪网站区域流量,能快速地将结果列表显示给没有耐心的主官。执行此额外的插入操作可以通过触发器自动完成。
➢ 验证。可以使用触发器在更新数据库之前验证数据,例如确保满足最低订单阈值。
➢ 强制引用完整性。根据可靠的数据库管理实践,表的关系在项目的整个生命周期中要保持稳定。与其尝试通过编程来加入所有完整性约束,不如使用触发器,有时使用触发器来确保这些任务自动完成很有意义。
触发器的使用远远不只是能满足上述目的。假设希望在公司每月收入达到100万美元时更新公司的网站。或者假设希望向每周旷工两天以上的员工发送电子邮件。再或者可能希望某种产品库存量偏低时通知厂商。所有这些任务都能用触发器很方便地完成。
为了更好地了解触发器的使用,考虑两个情景,第一个使用前触发器(before trigger),即触发器发生在事件之前,第二个使用后触发器(after trigger),即触发器发生在事件之后。