create trigger 觸發(fā)器名 before | after 觸發(fā)事件 on 表名 for each row begin 執(zhí)行語句; end; 譯: before | after:表示觸發(fā)器執(zhí)行的時間,前者是表示觸發(fā)前執(zhí)行, 后者是表示觸發(fā)時間之后執(zhí)行 觸發(fā)事件:觸發(fā)事件代表“insert”、“update”、“delete”三種操作 表名:指定的觸發(fā)時間操作的表的名稱 for each row :表示任何一條記錄上的操作滿足觸發(fā)器事件都會觸發(fā)該觸發(fā)器 begin ... end:表示開始到結束標簽。 執(zhí)行語句:表示觸發(fā)器被觸發(fā)以后執(zhí)行的程序。 實例一:
創(chuàng)建一個響應delete操作的觸發(fā)器
create trigger dlt after delete on student for echo row begin delete username from student; end; 譯: 創(chuàng)建的觸發(fā)器名:dlt 觸發(fā)器執(zhí)行時間:after 事件名:刪除操作(delete) 表名:student 執(zhí)行語句:從begin.....end之間的刪除語句。 2、創(chuàng)建多個執(zhí)行語句的觸發(fā)器
create trigger 觸發(fā)器名 before | after 觸發(fā)事件 on 表名 for each row begin 執(zhí)行語句1; 執(zhí)行語句2; 執(zhí)行語句3; end; 譯: before | after:表示觸發(fā)器執(zhí)行的時間,前者是表示觸發(fā)前執(zhí)行, 后者是表示觸發(fā)時間之后執(zhí)行 觸發(fā)事件:觸發(fā)事件代表“insert”、“update”、“delete”三種操作 表名:指定的觸發(fā)時間操作的表的名稱 for each row :表示任何一條記錄上的操作滿足觸發(fā)器事件都會觸發(fā)該觸發(fā)器 begin ... end:表示開始到結束標簽。 執(zhí)行語句1:表示觸發(fā)器被觸發(fā)以后執(zhí)行的程序1。 執(zhí)行語句2:表示觸發(fā)器被觸發(fā)以后執(zhí)行的程序2。 執(zhí)行語句3:表示觸發(fā)器被觸發(fā)以后執(zhí)行的程序3。 實例二:
創(chuàng)建一個響應delete操作的多個觸發(fā)器
create trigger dlt after delete on student for echo row begin insert into timelog(savetime) values(new()); insert into timeinfo(info) values('deleteact'); end; 譯: 創(chuàng)建的觸發(fā)器名:dlt 觸發(fā)器執(zhí)行時間:after 事件名:刪除操作(delete) 表名:student 執(zhí)行語句體:從begin.....end之間的刪除語句。 3、查看觸發(fā)器
show trigger; 3.1、查看trigger表中觸發(fā)器信息
select * from infomation_schema.trigger; 譯: infomation_schema:是MySQL中默認存在的數據庫,用于記錄觸發(fā)器信息的數據表 3.2、方法二查看
select * from infomation_schema.trigger where trigger_name='觸發(fā)器名稱'; 4、應用觸發(fā)器