Mysql基礎教程 mysql進階

Mysql觸發器的管理



觸發器的應用


對update而已,它實際上是有刪除和新增這兩個操作,對于update而言,對于update而言:被修改的行,修改前的數據,用old來表示,old.列名引用被修改之前行中的值;修改的后的數據,用new來表示,new.列名引用被修改之后行中的值。


示例


選擇數據庫。


0.png


查看表,我們也是針對employees和salaries這張表。


1.png


我們更新employees這張表中的數據,更新的數據是它的聘用日期,這里面的聘用日期的話,我們就要看salaries里面的工資是從哪天開始計算起走的。創建觸發器之前,修改分隔符。


2.png


再打開一個客戶端連接。


3.png


進入companys這個數據庫里來。


4.png


描述一下salaries這張表,這里面我們就要update salaries。


5.png


創建觸發器,在更新employees這張表之后,我們再更新salaries這個數據,所以它事件的時間是after,這個事件是個update事件,我們是在employees這張表里觸發的。這個觸發器的意思實際上是employees這張表里的受聘日期的時候,我們也會把我們salaries里面的run date也就是它工資的計算的起始日期也給它更新掉,這樣的話就能夠保證這兩張表里的一致性。


6.png


查看employees這張表里編號為1011的受聘日期。


7.png


修改它的受聘日期。


8.png


從salaries這張表里查看,結果為空,我們重新設置一下。


9.png


更新數據編號為1001的受聘日期。


90.png


從salaries這張表里查看,這里面更新的時候,我們就能保證它的聘用日期和它的工資的計算日期相一致。


91.png


我們剛才創建的update觸發器,它的一個一個觸發條件就是員工的編號,它是來源于更新之前的員工編號,這里面更新之后的數據日期它是新的一條數據,新的一條數據的話,它實際上就是new.hair_date,因為更新它實際上是把之前的數據刪掉,然后再重新插入一條語句,這實際上就是更新的過程,那么原有的數據我們可以用old來表示,更新之后的數據我們可以用new來表示,所以這里面有一個更新的日期,我們就是new.hair_date,這就是關于一個update觸發器。



觸發器的管理


查看所有觸發器


SHOW TRIGGERS;


Mysql中有一個information_schema.TRIGGERS表,存儲所有庫中的所有觸發器,desc information_schema. TRIGGERS,可以看到觸發器結構。


查看觸發器名字


select * from information_schema. TRIGGERS where TRIGGER_NAME= '觸發器名字' \G;


刪除觸發器


DROP TRIGGER 
sc
ema_name.]trigger_name



示例


查看所有觸發器。


92.png


以列的方式查看所有觸發器,這里面可以清晰的看到,觸發器的名稱,它的事件,建立的表,建立的語句,觸發的時間,創建者,還有編碼等。


93.png


查看表的字段。


94.png


查詢名字為tr_delete Emp的觸發器。


95.png


刪除這個觸發器。


96.png


再次查看,已經為空。


97.png


這節我們主要講了update觸發器,update觸發器實際上有兩個方面的內容,一個是update之前的數據,是通過old來表示,update之后的數據,是通過new來表示,update這樣的數據實際上是把之前的數據刪掉,刪掉之后,更新的數據它會認為是插入的數據,是這樣的過程。



【本文由麥子學院獨家原創,轉載請注明出處并保留原文鏈接】

logo
? 2012-2016 www.jvbprd.live
蜀ICP備13014270號-4 Version 5.0.0 release20160127

免費領取價值1888元求職寶典!

客服熱線 400-862-8862

回到頂部

彩票安徽25选5 江西麻将胡牌类型图片 漏财手也能赚钱 麻将技巧视频教学 吉首专职跑滴滴赚钱吗 捕鱼达人怎么玩 甘肃麻将如何胡牌几对 手机号卡商怎么赚钱 欢乐麻将开不了好友房 南京打工赚钱 gta5ceo 买车 赚钱 星辰陕西麻将手机版下载 做售前顾问赚钱吗 开吉祥混沌店赚钱吗 jk娱乐苹果 平安彩票游戏 本人有辆七座商务车做什么可以赚钱