創建觸發器的語法如下:
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt
trigger_time 是觸發器的觸發時間,可以是BEFORE 或者AFTER,BEFORE 的含義指在檢查約束前觸發,而AFTER 是在檢查約束后觸發。
而trigger_event 就是觸發器的觸發事件,可以是INSERT、UPDATE 或者DELETE。
對同一個表相同觸發時間的相同觸發事件,只能定義一個觸發器。
觸發器只能創建在永久表(Permanent Table)上,不能對臨時表(Temporary Table)創建觸發器。
舉例
DELIMITER $$
CREATE TRIGGER ins_film
AFTER INSERT ON film FOR EACH ROW BEGIN
INSERT INTO film_text (film_id, title, description)
VALUES (new.film_id, new.title, new.description);
END;
$$
delimiter ;
刪除觸發器
mysql> drop trigger ins_film;