《MYSQL觸發(fā)器》要點(diǎn):
本文介紹了MYSQL觸發(fā)器,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
觸發(fā)器是一種與表操作有關(guān)的數(shù)據(jù)庫(kù)對(duì)象,當(dāng)觸發(fā)器所在表上出現(xiàn)指定事件時(shí),將調(diào)用該對(duì)象,即表的操作事件觸頒發(fā)上的觸發(fā)器的執(zhí)行.
所有觸發(fā)器都保留在information_schema.trigger表中.
格式:
create trigger 觸發(fā)器名字
before/after
insert/update/delete/load data/replace ON 樹立觸發(fā)器的表
FOR EACH ROW
觸發(fā)器法式體
假設(shè)體系中有兩個(gè)表:
班級(jí)表 class(班級(jí)號(hào) classID, 班內(nèi)學(xué)生數(shù) stu_num)
學(xué)生表 student(學(xué)號(hào) stuID, 所屬班級(jí)號(hào) classID)
要?jiǎng)?chuàng)立觸發(fā)器來使班級(jí)表中的班內(nèi)學(xué)生數(shù)隨著學(xué)生的添加自動(dòng)更新
DELIMITER $
create trigger tri_stu_Insert after insert
on student for each row
begin
declare c int;
set num = (select stu_num from class where classID=new.classID);
update class set stu_num = num + 1 where classID = new.classID;
end$
DELIMITER ;
在 INSERT 型觸發(fā)器中,NEW 用來表現(xiàn)將要(BEFORE)或已經(jīng)(AFTER)插入的新數(shù)據(jù);
在 UPDATE 型觸發(fā)器中,OLD 用來表現(xiàn)將要或已經(jīng)被修改的原數(shù)據(jù),NEW 用來表現(xiàn)將要或已經(jīng)修改為的新數(shù)據(jù);
在 DELETE 型觸發(fā)器中,OLD 用來表現(xiàn)將要或已經(jīng)被刪除的原數(shù)據(jù);
show trigger [from DBname] 查看觸發(fā)器
drop trigger [if exists][DBname.] trigger_name刪除了觸發(fā)器
歡迎參與《MYSQL觸發(fā)器》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/7099.html