觸發(fā)器是當表中的內容發(fā)生增刪改時帚湘,自動觸發(fā)的代碼枚钓。
觸發(fā)器包含的三要素
1.事件類型:增(insert)刪(delete)改(update)
2.觸發(fā)時間:事件觸發(fā)的前(before)后(after)
3.觸發(fā)對象
每張表不能存在兩張相同事件類型和觸發(fā)時間的觸發(fā)器付呕,即最多只能擁有3*2種觸發(fā)器
觸發(fā)器語句:
create trigger + 觸發(fā)器名稱 + 觸發(fā)器時間 + 事件類型 on 表名 for each row
begin -- 代表觸發(fā)器內容開始
-- 觸發(fā)器內容主體僵娃,每行用分號結尾
end -- 代表觸發(fā)器內容結束
還有兩記錄名:
1.OLD代表是舊記錄险掀,也就是當前記錄的狀態(tài)证杭,插入時沒有OLD田度;
2.NEW代表是新記錄,也就是假設操作發(fā)生之后記錄的狀態(tài)解愤,刪除時沒有NEW镇饺。
取值為: OLD/NEW . 字段名
下面是數(shù)據(jù)實例:
表一 user_product:
表二 user_first:
邏輯陳述:當刪除user_product表中的數(shù)據(jù)時,根據(jù)user_id關聯(lián)user_first的id送讲,刪除user_first對應行奸笤。
創(chuàng)建觸發(fā)器:
CREATE TRIGGER after_product_del AFTER DELETE ON user_product for each ROW
BEGIN
DELETE from user_first WHERE id = OLD.user_id;
END
執(zhí)行user_product刪除操作:
DELETE from user_product where id = 3
結果:
如需查看觸發(fā)器,可用show triggers查看哼鬓。也可在對應表的設計表中查看监右。