国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

Mysql教程:MYSQL創(chuàng)建觸發(fā)程序

2024-07-24 12:40:24
字體:
供稿:網(wǎng)友
剛剛弄懂了MYSQL的創(chuàng)建觸發(fā)程序。   語法:CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt   文字說明第一次看的時候不是很明白,但是最后面的看一下例子就差不多了!   觸發(fā)程序是與表有關(guān)的命名數(shù)據(jù)庫對象,當(dāng)表上出現(xiàn)特定事件時,將激活該對象。   觸發(fā)程序與命名為tbl_name的表相關(guān)。tbl_name必須引用永久性表。不能將觸發(fā)程序與TEMPORARY表或視圖關(guān)聯(lián)起來。   trigger_time是觸發(fā)程序的動作時間。它可以是BEFORE或AFTER,以指明觸發(fā)程序是在激活它的語句之前或之后觸發(fā)。   trigger_event指明了激活觸發(fā)程序的語句的類型。trigger_event可以是下述值之一:   · INSERT:將新行插入表時激活觸發(fā)程序,例如,通過INSERT、LOAD DATA和REPLACE語句。   · UPDATE:更改某一行時激活觸發(fā)程序,例如,通過UPDATE語句。   · DELETE:從表中刪除某一行時激活觸發(fā)程序,例如,通過DELETE和REPLACE語句。   請注意,trigger_event與以表操作方式激活觸發(fā)程序的SQL語句并不很類似,這點很重要。例如,關(guān)于INSERT的BEFORE觸發(fā)程序不僅能被INSERT語句激活,也能被LOAD DATA語句激活。   可能會造成混淆的例子之一是INSERT INTO .. ON DUPLICATE UPDATE ...語法:BEFORE INSERT觸發(fā)程序?qū)τ诿恳恍袑⒓せ睿蟾鶤FTER INSERT觸發(fā)程序,或BEFORE UPDATE和AFTER UPDATE觸發(fā)程序,具體情況取決于行上是否有重復(fù)鍵。   對于具有相同觸發(fā)程序動作時間和事件的給定表,不能有兩個觸發(fā)程序。例如,對于某一表,不能有兩個BEFORE UPDATE觸發(fā)程序。但可以有1個BEFORE UPDATE觸發(fā)程序和1個BEFORE INSERT觸發(fā)程序,或1個BEFORE UPDATE觸發(fā)程序和1個AFTER UPDATE觸發(fā)程序。   trigger_stmt是當(dāng)觸發(fā)程序激活時執(zhí)行的語句。如果你打算執(zhí)行多個語句,可使用BEGIN ... END復(fù)合語句結(jié)構(gòu)。這樣,就能使用存儲子程序中允許的相同語句。   使用別名OLD和NEW,能夠引用與觸發(fā)程序相關(guān)的表中的列。OLD.col_name在更新或刪除它之前,引用已有行中的1列。NEW.col_name在更新它之后引用將要插入的新行的1列或已有行的1列。   激活觸發(fā)程序時,對于觸發(fā)程序引用的所有OLD和NEW列,需要具有SELECT權(quán)限,對于作為SET賦值目標(biāo)的所有NEW列,需要具有UPDATE權(quán)限。   注釋:目前,觸發(fā)程序不會被級聯(lián)的 外鍵動作激活。該限制將會被盡早放寬。   CREATE TRIGGER語句需要SUPER權(quán)限。   示例:   CREATE TRIGGER update_blogs AFTER INSERT ON blogs FOR EACH ROW   UPDATE blogcategory SET amount = amount + 1 WHERE cid = NEW.categoryid;   該語句創(chuàng)建了一個名為update_blogs的觸發(fā)程序,這個觸發(fā)程序在blogs表發(fā)生INSERT、LOAD DATA和REPLACE語句時執(zhí)行“UPDATE blogcategory SET amount = amount + 1 WHERE cid = NEW.categoryid;”  
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 威远县| 恭城| 大同县| 荔浦县| 清镇市| 珲春市| 固始县| 新和县| 常宁市| 兴城市| 商水县| 阳春市| 阿拉尔市| 彭阳县| 盘山县| 绥棱县| 永新县| 镇宁| 遂宁市| 庄河市| 邓州市| 靖州| 城步| 璧山县| 邵阳市| 江西省| 贵阳市| 泽库县| 彭山县| 大荔县| 弥渡县| 东平县| 洱源县| 陵川县| 建水县| 延川县| 兰考县| 温州市| 甘肃省| 乐平市| 巴马|