對某個表進行【增/刪/改】操做的先後若是但願觸發某個特定的行爲時,能夠使用觸發器,觸發器用於定製用戶對錶的行進行【增/刪/改】先後的行爲。html
觸發器能放在執行 sql 語句的6個關鍵位置。sql
格式:ide
操做類型及語法:ui
# 插入前 CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROW BEGIN ... END # 插入後 CREATE TRIGGER tri_after_insert_tb1 AFTER INSERT ON tb1 FOR EACH ROW BEGIN ... END # 刪除前 CREATE TRIGGER tri_before_delete_tb1 BEFORE DELETE ON tb1 FOR EACH ROW BEGIN ... END # 刪除後 CREATE TRIGGER tri_after_delete_tb1 AFTER DELETE ON tb1 FOR EACH ROW BEGIN ... END # 更新前 CREATE TRIGGER tri_before_update_tb1 BEFORE UPDATE ON tb1 FOR EACH ROW BEGIN ... END # 更新後 CREATE TRIGGER tri_after_update_tb1 AFTER UPDATE ON tb1 FOR EACH ROW BEGIN ... END
例子:spa
delimiter // CREATE TRIGGER tri_after_insert_tb1 AFTER INSERT ON tb1 FOR EACH ROW BEGIN IF NEW. num = 666 THEN INSERT INTO tb2 (NAME) VALUES ('666'), ('666') ; ELSEIF NEW. num = 555 THEN INSERT INTO tb2 (NAME) VALUES ('555'), ('555') ; END IF; END// delimiter ;
說明:code
表示當對 tb1 表進行數據 插入後 操做:htm
一、若是插入的num值爲 666 ,則給對應的 tb2 表增長 兩項 666 的數據。blog
二、若是 tb1 表插入的num數據爲 555,則給 tb2 表增長兩項 555 的數據。ip
特別的:get
DROP TRIGGER tri_after_insert_tb1;
觸發器沒法由用戶直接調用,而是由對錶的【增/刪/改】操做被動引起的。