- CREATE TRIGGER `觸發器名稱` -- 命名原則與資料表一樣
- { BEFORE | AFTER } -- 設置事件發生為前或後
- { INSERT | UPDATE | DELETE } -- 設定觸發的事件
- ON `資料表名稱` -- 設定引起觸發的資料表
- FOR EACH ROW -- 針對行為觸發單位
- {觸發的SQL指令} -- 這裡可以是任何合法的指令與複合句(BEGIN/END)
範例:
- DELIMITER $$ -- 變更結束符號為 $$
- CREATE TABLE t25(
- s1 INT,
- s2 CHAR(5),
- PRIMARY KEY (s1)
- )ENGINE = INNODB $$
- CREATE TRIGGER t25_bi BEFORE INSERT ON t25
- FOR EACH ROW
- IF LEFT(NEW.s2,1)<>'A' THEN
- SET NEW.s1=0;
- END IF;
- $$
- CREATE TRIGGER t25_bu BEFORE UPDATE ON t25
- FOR EACH ROW
- IF LEFT(NEW.s2,1)<>'A' THEN
- SET NEW.s1=0;
- END IF;
- $$
- DELIMITER ; -- 將結束符號改回 ;
參考文件:
MySQL 5.0-触发器
MySQL 5.1参考手册 :: 21. 触发程序
0 回應:
張貼留言