觸發器在資料庫裡以獨立的對象存儲,它與存儲過程和函數不同的是,存儲過程與函數需要使用者顯示調用才執行,而觸發器是由一個事件來啟動運作。即觸發器是當某個事件發生時自動地隐式運作。并且,觸發器不能接收參數。
1.建立隻有一個執行語句的觸發器
CREATE TRIGGER trig_book AFTER INSERT
ON t_book FOR EACH ROW
UPDATE t_booktype SET booknum=booknum+1 WHERE new.bookTypeId=t_booktype.id /*插入、更新的
目前記錄用new,删除的記錄用old*/
2.建立執行多個語句的觸發器
DELIMITER &&
CREATE TRIGGER trig_book2 AFTER DELETE
ON t_book FOR EACH ROW
BEGIN
UPDATE t_booktype SET booknum=booknum-1 WHERE old.bookTypeId=t_booktype.id;
INSERT INTO t_log VALUES(NULL,NOW(),'删除資料');
DELETE FROM t_test WHERE old.bookTypeId=t_test.id;
END;
&&
DELIMITER ;
3.檢視觸發器