本人在網上看了很多的博客資料,感覺大家都是在相互抄襲,我就自己根據自己的理解和經驗來總結一下吧; 首先觸發器的創建: 有使用Navicat的朋友可以在上面創建一個觸發器: (本人就是簡單的複製上面的sql ) CREATE TRIGGER `c_time` BEFORE INSERT ON `stu ...
本人在網上看了很多的博客資料,感覺大家都是在相互抄襲,我就自己根據自己的理解和經驗來總結一下吧;
首先觸發器的創建:
有使用Navicat的朋友可以在上面創建一個觸發器:
(本人就是簡單的複製上面的sql )
CREATE TRIGGER `c_time` BEFORE INSERT ON `student`
FOR EACH ROW ;
c_time 是一個觸發器的名字
before 還有after 是觸發的時間
insert updata delete 觸發觸發器的事件
on 連接表名
for each row 意思就是每個欄位
接下來就是重點了,我們創建了那怎麼使用呢;
DELIMITER $
create trigger t_time after insert on student for each row
begin
declare c int; set c = (select stu t from class where id=new.id);
update class set stuCount = c + 1 where id= new.id;
end
$ DELIMITER ;
觸發器可以看成一個函數哈,用DELIMITER $ $ DELIMITER 包起來 begin end 裡面寫表達式,declare 寫變數註意要寫類型啊,這個begin end這樣的表達式在就可以想怎麼寫就發揮你的想象力吧!
相信很多人都看出了觸發器的作用了
作用:
1.修改數據許可權的限制,我可以在begin end 裡面寫我限制那個id 可以修改我的數據
2.兩張或者多張關聯的表當一張表的數據清除的時候其他關聯表的關聯欄位可以更新為null
3.可以跟蹤數據被修改的情況等等
當然作用不止這些,作用還有很多這裡就不一一寫了