在實習過程當中涉及到SQL觸發器,在校時未學習過觸發器的知識,於是進行上網自學整理,如下內容爲我對網上資料收集整合,若侵權請聯繫刪除,謝謝。java
原文連接(https://blog.csdn.net/weixin_39941298/java/article/details/81080353)數據庫
1、建立使用觸發器學習
(1)建立只有一個執行語句的觸發器spa
create trigger 觸發器 before|after 觸發事件 on 表名 for each row 執行語句
eg:建立一個trig_book觸發器,該觸發器在表t_book插入一條數據後,對錶t_bookType的bookNum數量對應的bookTypeId會自動加1.net
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; INSERT INTO t_book VALUES(NULL,'java好',100,'ke',1);
t_book表:code
t_bookType表:對象
(2)建立多個執行語句的觸發器blog
create trigger 觸發器名 before|after 觸發事件 on 表名 for each row begin 執行語句列表 end
DELIMITER | 數據庫語句 | DELIMITER;//告訴數據庫這時一條語句內容事件
new old 觸發的兩個過分變量;new:新增一條語句的新增對象;old:刪除一條語句的刪除對象;class
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(),'在book表裏刪除了一條數據'); delete from t_test where old.bookTypeId = t_test.id; end | DELIMITER ;
DELETE FROM t_book WHERE id=5;
2、查看觸發器
(1)SHOWTRIGGERS 語句查看觸發器信息
SHOW TRIGGERS;
(2)在 triggers 表中查看觸發器信息
DROP TRIGGER trig_book2 ;