MySQL 从5.0.2版开始引入触发器,触发器就是一个已命名的数据库对象,这个对象和某张表相关,而且当这张表发生某种特定事件后,触发器将被激活执行相应的动作,触发器允许这些动作在这张表中的一行或多行的数据被操作的前后执行。在流行业务系统的处理过程中,开发和管理人员可以用触发器来实现数据审计和其他安全相关的功能,如在运行中的数据执行加密功能。
mysql> delimiter // mysql> CREATE PROCEDURE cursor_demo() -> BEGIN -> DECLARE a, b CHAR(16); -> DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1; -> OPEN cur1; -> REPEAT -> FETCH cur1 INTO a,b; -> UNDONE END REPEAT; -> CLOSE cur1; -> END -> //
下面再举一个触发器的例子,该例子可以计算所有插入某表的某个列中的数值的和:
mysql> CREATE TABLE account (acct_num INT, amount DECIMAL(10,2)); mysql> CREATE TRIGGER ins_sum BEFORE INSERT ON account -> FOR EACH ROW SET @sum = @sum + NEW.amount;