跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

在MySQL中使用触发器Trigger的操作过程

想监控Bugzilla数据库中几个重要的表,如果它们发生了任何改变(增、删、改),都希望能够记录下来,以便后面再写程序来分析。很自然,就想到使用MySQL的触发器(Trigger)了,学习了一会,记录如下: 1. 先建立一个新的表用于记录我需要的变化: CREATE TAB 想监控Bugzilla数据库中几个重要的表,如果它们发生了任何改变(增、删、改),都希望能够记录下来,以便后面再写程序来分析。很自然,就想到使用MySQL的触发器(Trigger)了,学习了一会,记录如下: 1. 先建立一个新的表用于记录我需要的变化:
CREATE TABLE `bugzilla_log` ( `id` INT UNSIGNED NOT NULL, `table` varchar(80) NOT NULL, `action` ENUM('insert','update','delete'), `ts` TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='logging some important changes in bugzilla DB';
2. 针对需要监控的表,创建触发器:
CREATE TRIGGER `classifications_insert` AFTER INSERT ON classifications FOR EACH ROW INSERT INTO `bugzilla_log` (`id`, `table`, `action`, `ts`) VALUES (NEW.id, 'classifications', 'insert', NOW()); ? CREATE TRIGGER `classifications_update` AFTER UPDATE ON classifications FOR EACH ROW INSERT INTO `bugzilla_log` (`id`, `table`, `action`, `ts`) VALUES (NEW.id, 'classifications', 'update', NOW()); ? CREATE TRIGGER `classifications_delete` BEFORE DELETE ON classifications FOR EACH ROW INSERT INTO `bugzilla_log` (`id`, `table`, `action`, `ts`) VALUES (OLD.id, 'classifications', 'delete', NOW());
请注意其中AFTER和BEFORE,以及OLD和NEW的使用。 Within the trigger body, you can refer to columns in the subject table (the table associated with the trigger) by using the aliases OLD and NEW. OLD.col_name refers to a column of an existing row before it is updated or deleted. NEW.col_name refers to the column of a new row to be inserted or an existing row after it is updated. 3. 查看当前数据库中的触发器:
SHOW TRIGGERS;
参考资料: http://dev. mysql .com/doc/refman/5.5/en/create-trigger.html http://www.jicdesign.com/blog/web-development/how-to-use-mysql-triggers-to-log-table-changes.html MySQL(Linux) MySQL 9.6.0是面向Linux平台的2026年创新版本,核心架构迎来重大革新。其将外键约束与级联操作从InnoDB引擎层上移至SQL层,确保所有数据变更均被完整记录至Binlog,彻底解决了CDC(变更数据捕获)与主从复制中的数据不一致难题。此外,该版本引入container_aware启动选项以原生适配容器环境,并对审计日志进行了组件化重构,为追求极致数据一致性与云原生体验的开发者提供了全新选择。 下载 Original article: 在MySQL中使用触发器Trigger的操作过程 ©2014 笑遍世界. All Rights Reserved. 原文地址:在MySQL中使用触发器Trigger的操作过程, 感谢原作者分享。

相关文章