觸發(fā)程序是與表有關(guān)的命名數(shù)據(jù)庫對象,當(dāng)表上出現(xiàn)特定事件時,將激活該對象。CREATE TRIGGER語法CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt 觸發(fā)程序與命名為tbl_name的表相關(guān)。 trigger_time是觸發(fā)程序的動作時間。它可以是BEFORE或AFTER,以指明觸發(fā)程序是在激活它的語句之前或之后觸發(fā)。 trigger_time是觸發(fā)程序的動作時間。它可以是BEFORE或AFTER,以指明觸發(fā)程序是在激活它的語句之前或之后觸發(fā)。 trigger_event指明了激活觸發(fā)程序的語句的類型。trigger_event可以是下述值之一: ·INSERT:將新行插入表時激活觸發(fā)程序 ·UPDATE:更改某一行時激活觸發(fā)程序 ·DELETE:從表中刪除某一行時激活觸發(fā)程序 trigger_stmt是當(dāng)觸發(fā)程序激活時執(zhí)行的語句。如果你打算執(zhí)行多個語句,可使用BEGIN MySQL數(shù)據(jù)庫創(chuàng)建觸發(fā)器的格式如下:
create trigger<觸發(fā)器名稱>:創(chuàng)建一個新觸發(fā)器,并指定觸發(fā)器的名稱。 { before | after}:用于指定在insert、update或delete語句執(zhí)行前觸發(fā)還是在語句執(zhí)行后觸發(fā)。 on <表名>:用于指定響應(yīng)該觸發(fā)器的表名。 for each row:觸發(fā)器的執(zhí)行間隔,for each row通知觸發(fā)器每隔一行執(zhí)行一次動作,而不是對整個表執(zhí)行一次。 <觸發(fā)器SQL語句>:觸發(fā)器要執(zhí)行的SQL語句,如果該觸發(fā)器要執(zhí)行多條SQL語句,要將多條語句放在begin…end塊中。 實(shí)例: (1): 在“命令提示符”下創(chuàng)建數(shù)據(jù)表test1 CREATE TABLE `test1`( ![]() `id` int(11) NOT NULLAUTO_INCREMENT, `name` varchar(20) NOTNULL ) (2): 再創(chuàng)建數(shù)據(jù)表test2 CREATE TABLE `test2`( `num` int(11) DEFAULTNULL, ) (3):創(chuàng)建觸發(fā)器 create trigger `num` BEFORE INSERT on `test1` for each row update test2 set num = num + 1; 向test1表插入數(shù)據(jù),test2表中的num就加一 (4): INSERT INTO test1 (name) VALUES ('aa'); (5):查看test1和test2表中的數(shù)據(jù) DROP TRIGGER語法 DROP TRIGGER [schema_name.]trigger_name 舍棄觸發(fā)程序。方案名稱(schema_name)是可選的。如果省略了schema(方案),將從當(dāng)前方案中舍棄觸發(fā)程序。 DROP TRIGGER test.num 注意: 使用OLD和NEW關(guān)鍵字,能夠訪問受觸發(fā)程序影響的行中的列(OLD和NEW不區(qū)分大小寫)。在INSERT觸發(fā)程序中,僅能使用NEW.col_name,沒有舊行。在DELETE觸發(fā)程序中,僅能使用OLD.col_name,沒有新行。在UPDATE觸發(fā)程序中,可以使用OLD.col_name來引用更新前的某一行的列,也能使用NEW.col_name來引用更新后的行中的列。 用OLD命名的列是只讀的。你可以引用它,但不能更改它。對于用NEW命名的列,如果具有SELECT權(quán)限,可引用它。在BEFORE觸發(fā)程序中,如果你具有UPDATE權(quán)限,可使用“SETNEW.col_name =value”更改它的值。這意味著,你可以使用觸發(fā)程序來更改將要插入到新行中的值,或用于更新行的值。 在BEFORE觸發(fā)程序中,AUTO_INCREMENT列的NEW值為0,不是實(shí)際插入新記錄時將自動生成的序列號。 更多查看手冊! |
MySql觸發(fā)器以及實(shí)例 數(shù)據(jù)庫觸發(fā)器實(shí)例
更多閱讀

VB數(shù)據(jù)庫操作實(shí)例 javs匿名函數(shù)
VB數(shù)據(jù)庫操作實(shí)例VB數(shù)據(jù)庫操作實(shí)例——工具/原料 VB數(shù)據(jù)庫操作對很多初學(xué)者朋友感到比較吃力,目前教材中的實(shí)例對數(shù)據(jù)庫操作都比較單一,很多朋友提議我做一個包括瀏覽、添加、修改、刪除功能的數(shù)據(jù)庫操作實(shí)例,下面這個實(shí)例就是一個這

oracle如何創(chuàng)建數(shù)據(jù)庫 oracle數(shù)據(jù)庫創(chuàng)建實(shí)例
oracle如何創(chuàng)建數(shù)據(jù)庫——簡介我們這里所說的創(chuàng)建是用圖形化的界面來創(chuàng)建數(shù)據(jù)庫的。oracle如何創(chuàng)建數(shù)據(jù)庫——工具/原料oracle軟件電腦oracle如何創(chuàng)建數(shù)據(jù)庫——方法/步驟oracle如何創(chuàng)建數(shù)據(jù)庫 1、從Windows桌面執(zhí)行“開始”→“
Zmud機(jī)器人制作--基礎(chǔ)知識,技巧以及實(shí)例講解終極篇上 fanuc機(jī)器人編程實(shí)例
中級篇第五章 buttons﹑系統(tǒng)變量﹑function5.1 button按鈕(buttons)是很實(shí)用的一個功能,不光應(yīng)用于半自動的機(jī)器人讓游戲過程更加便捷,也用于全自動機(jī)器人,讓人為修改某些變量更加簡單.按鈕有3個要素:Caption,Commands(zmud721中這個要

物質(zhì)的跨膜運(yùn)輸及其實(shí)例 物質(zhì)跨膜運(yùn)輸
物質(zhì)的跨膜運(yùn)輸及其實(shí)例人民教育出版社 課程教材研究所 吳成軍摘要:本文介紹了物質(zhì)跨膜運(yùn)輸?shù)母鞣N方式,對載體的種類和作用,供能的方式以及水分子、葡萄糖分子、Na+和K+等物質(zhì)的跨膜方式進(jìn)行了分析和介紹,并對高中教學(xué)中的相關(guān)疑問進(jìn)

基于端口劃分VLAN實(shí)例 端口劃分vlan
通過本實(shí)訓(xùn)可以學(xué)習(xí)到:基于端口劃分VLAN的方法;查看VLAN劃分情況。基于端口劃分VLAN實(shí)例——工具/原料1臺Cisco1912交換機(jī)4臺PC機(jī),4條雙絞線1臺帶有超級終端程序的PC機(jī),以及Console電纜及轉(zhuǎn)接器。基于端口劃分VLAN實(shí)例——步驟/方
愛華網(wǎng)