基本觸發器

建立表

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;

如果刪除表,則表的任何觸發器也將被刪除。