基本触发器

创建表

mysql> CREATE TABLE account (acct_num INT, amount DECIMAL(10,2));
Query OK, 0 rows affected (0.03 sec)

创建触发器

mysql> CREATE TRIGGER ins_sum BEFORE INSERT ON account
    -> FOR EACH ROW SET @sum = @sum + NEW.amount;
Query OK, 0 rows affected (0.06 sec)

CREATE TRIGGER 语句创建一个名为 ins_sum 的触发器,该触发器与帐户表关联。它还包括指定触发器操作时间,触发事件以及触发器激活时要执行的操作的子句

插入值

要使用触发器,请将累加器变量(@sum)设置为零,执行 INSERT 语句,然后查看变量后面的值:

mysql> SET @sum = 0;
mysql> INSERT INTO account VALUES(137,14.98),(141,1937.50),(97,-100.00);
mysql> SELECT @sum AS 'Total amount inserted';
+-----------------------+
| Total amount inserted |
+-----------------------+
| 1852.48               |
+-----------------------+

在这种情况下,执行 INSERT 语句后 @sum 的值为 14.98 + 1937.50 - 100 或 1852.48。

丢弃触发器

mysql> DROP TRIGGER test.ins_sum;

如果删除表,则表的任何触发器也将被删除。