MySql-建立觸發器
在MySQL中,建立觸發器語法如下:
CREATE TRIGGER trigger_nametrigger_time
trigger_event ON tbl_name
FOR EACH ROW
trigger_stmt
其中:trigger_name:標識觸發器名稱,使用者自行指定;
trigger_time:標識觸發時機,取值為 BEFORE 或 AFTER;
trigger_event:標識觸發事件,取值為 INSERT、UPDATE 或 DELETE;
tbl_name:標識建立觸發器的表名,即在哪張表上建立觸發器;
trigger_stmt:觸發器程式體,可以是一句SQL語句,或者用 BEGIN 和 END 包含的多條語句。
另外有一個限制是不能同時在一個表上建立2個相同型別的觸發器,因此在一個表上最多建立6個觸發器
例如: 表"ce_column_desc"每新增一條資料,欄位建立時間"created_at "就自動更新時間。
DROP TRIGGER IF EXISTS `ce_column_desc_created_at`;
DELIMITER $
CREATE TRIGGER `ce_column_desc_created_at`
BEFORE
INSERT
ON `ce_column_desc`
begin
set new.created_at = now();
end
$ DELIMITER ;
1.判斷觸發器名稱是否存在,不存在繼續執行以下命令
2.定界符 DELIMITER $ 可隨便定義,例如 ;; & 等(結束定界符 需一樣 即可 )
3.建立觸發器
4.標識觸發時機
5.標識觸發事件
6.標識建立觸發器的表名
7.行級觸發器,每行受影響,每插入一條都觸發
8.觸發器程式體-開始
9.觸發器程式體-執行內容
10.觸發器程式體-結束
11.結束 定界符