![0fd26acf4cc658a4b728454389437311.png](https://img-blog.csdnimg.cn/img_convert/0fd26acf4cc658a4b728454389437311.png)
触发器在满足定义条件时触发,并执行触发器中定义的语句集合,这使得我们可以利用触发器做一些有用的事情,比如在新增、更新记录时记录操作的时间,在删除记录时把记录进行备份或写日志。
来个简单示例,先创建一个表:
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;
该触发器定义了在向 account 表插入数据时会汇总 amount 字段的值到 @sum 用户变量中,这样我们就可以在每次执行插入后读取该用户变量,例如:
mysql> SET @sum = 0;mysql> INSERT INTO account VALUES(10, 10.23),(12, 137.50),(13, -100.00);mysql> SELECT @sum AS 'Total Amount Inserted';
输出:
<