顾美玲勾引管家|日韩黄色成人|国产精品theporn动漫|欧美日日日|国产精品探花在线

專業(yè)只做數(shù)據(jù)庫(kù)實(shí)訓(xùn)和認(rèn)證的品牌機(jī)構(gòu)

微信公眾號(hào)新浪微博
免費(fèi)咨詢電話:400-0909-964
當(dāng)前位置: 網(wǎng)站首頁(yè) > MySQL培訓(xùn) > MySQL課程 > MySQL培訓(xùn)教程:觸發(fā)器創(chuàng)建、更新、刪除

MySQL培訓(xùn)教程:觸發(fā)器創(chuàng)建、更新、刪除

文章來(lái)源: 更新時(shí)間:2016/7/12 14:01:55

在線老師點(diǎn)擊咨詢:

最新學(xué)訊:近期OCP認(rèn)證正在報(bào)名中,因考試人員較多請(qǐng)盡快報(bào)名獲取最近考試時(shí)間,報(bào)名費(fèi)用請(qǐng)聯(lián)系在線老師,甲骨文官方認(rèn)證,報(bào)名從速!

我要咨詢

mysql培訓(xùn)教程:觸發(fā)器創(chuàng)建、更新、刪除,觸發(fā)器是由事件來(lái)觸發(fā)某個(gè)操作,這些事件包括INSERT語(yǔ)句,UPDATE語(yǔ)句和DELETE語(yǔ)句

創(chuàng)建觸發(fā)器

創(chuàng)建只有一個(gè)執(zhí)行語(yǔ)句的觸發(fā)器

CREATE TRIGGER 觸發(fā)器名 BEFORE|AFTER 觸發(fā)事件

ON 表名 FOR EACH ROW 執(zhí)行語(yǔ)句

其中,觸發(fā)器名參數(shù)指要?jiǎng)?chuàng)建的觸發(fā)器的名字

BEFORE和AFTER參數(shù)指定了觸發(fā)執(zhí)行的時(shí)間,在事件之前或是之后

FOR EACH ROW表示任何一條記錄上的操作滿足觸發(fā)事件都會(huì)觸發(fā)該觸發(fā)器

mysql> CREATE TRIGGER trig1 AFTER INSERT

-> ON work FOR EACH ROW

-> INSERT INTO time VALUES(NOW());

Query OK, 0 rows affected (0.09 sec)

上面創(chuàng)建了一個(gè)名為trig1的觸發(fā)器,一旦在work中有插入動(dòng)作,就會(huì)自動(dòng)往time表里插入當(dāng)前時(shí)間

創(chuàng)建有多個(gè)執(zhí)行語(yǔ)句的觸發(fā)器

CREATE TRIGGER 觸發(fā)器名 BEFORE|AFTER 觸發(fā)事件

ON 表名 FOR EACH ROW

BEGIN

執(zhí)行語(yǔ)句列表

END

其中,BEGIN與END之間的執(zhí)行語(yǔ)句列表參數(shù)表示需要執(zhí)行的多個(gè)語(yǔ)句,不同語(yǔ)句用分號(hào)隔開

tips:一般情況下,mysql默認(rèn)是以 ; 作為結(jié)束執(zhí)行語(yǔ)句,與觸發(fā)器中需要的分行起沖突

為解決此問(wèn)題可用DELIMITER,如:DELIMITER ||,可以將結(jié)束符號(hào)變成||

當(dāng)觸發(fā)器創(chuàng)建完成后,可以用DELIMITER ;來(lái)將結(jié)束符號(hào)變成;

mysql> DELIMITER ||
mysql> CREATE TRIGGER trig2 BEFORE DELETE
    -> ON work FOR EACH ROW
    -> BEGIN
    -> INSERT INTO time VALUES(NOW());
    -> INSERT INTO time VALUES(NOW());
    -> END
    -> ||
Query OK, 0 rows affected (0.06 sec)

mysql> DELIMITER ;

上面的語(yǔ)句中,開頭將結(jié)束符號(hào)定義為||,中間定義一個(gè)觸發(fā)器,一旦有滿足條件的刪除操作

就會(huì)執(zhí)行BEGIN和END中的語(yǔ)句,接著使用||結(jié)束

最后使用DELIMITER ; 將結(jié)束符號(hào)還原

查看觸發(fā)器

SHOW TRIGGERS語(yǔ)句查看觸發(fā)器信息

mysql> SHOW TRIGGERS\G;
*************************** 1. row ***************************
             Trigger: trig1
               Event: INSERT
               Table: work
           Statement: INSERT INTO time VALUES(NOW())
              Timing: AFTER
             Created: NULL
            sql_mode: 
             Definer: root@localhost
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: latin1_swedish_ci

結(jié)果會(huì)顯示所有觸發(fā)器的基本信息

tips:SHOW TRIGGERS語(yǔ)句無(wú)法查詢指定的觸發(fā)器

在triggers表中查看觸發(fā)器信息

mysql> SELECT * FROM information_schema.triggers\G
*************************** 1. row ***************************
           TRIGGER_CATALOG: def
            TRIGGER_SCHEMA: person
              TRIGGER_NAME: trig1
        EVENT_MANIPULATION: INSERT
      EVENT_OBJECT_CATALOG: def
       EVENT_OBJECT_SCHEMA: person
        EVENT_OBJECT_TABLE: work
              ACTION_ORDER: 0
          ACTION_CONDITION: NULL
          ACTION_STATEMENT: INSERT INTO time VALUES(NOW())

結(jié)果顯示了所有觸發(fā)器的詳細(xì)信息,同時(shí),該方法可以查詢制定觸發(fā)器的詳細(xì)信息

mysql> SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME='trig1'\G
*************************** 1. row ***************************
           TRIGGER_CATALOG: def
            TRIGGER_SCHEMA: person
              TRIGGER_NAME: trig1
        EVENT_MANIPULATION: INSERT
      EVENT_OBJECT_CATALOG: def
       EVENT_OBJECT_SCHEMA: person
        EVENT_OBJECT_TABLE: work

tips:所有觸發(fā)器信息都存儲(chǔ)在information_schema數(shù)據(jù)庫(kù)下的triggers表中

可以使用SELECT語(yǔ)句查詢,如果觸發(fā)器信息過(guò)多,最好通過(guò)TRIGGER_NAME字段指定查詢

刪除觸發(fā)器

mysql> DROP TRIGGER trig1;

Query OK, 0 rows affected (0.04 sec)

刪除觸發(fā)器之后最好使用上面的方法查看一遍

同時(shí),也可以使用database.trig來(lái)指定某個(gè)數(shù)據(jù)庫(kù)中的觸發(fā)器

tips:如果不需要某個(gè)觸發(fā)器時(shí)一定要將這個(gè)觸發(fā)器刪除,以免造成意外操作

本文地址:http://www.mudan321.com/mysql/kecheng/12455296467.html 轉(zhuǎn)載請(qǐng)注明!


PostgreSQL入門到精通 100+ 個(gè)學(xué)習(xí)資料

Oracle培訓(xùn)機(jī)構(gòu)

金牌講師<>

冉乃綱-老師CUUG金牌講師
冉老師 CUUG金牌講師 Oracle及RedHat高級(jí)講師、Unix/Linux 資深專家...[詳細(xì)了解老師]

免費(fèi)咨詢上課流程 客服在線中

陳衛(wèi)星-老師CUUG金牌講師
陳老師 CUUG金牌講師 精通Oracle管理、備份恢復(fù)、性能優(yōu)化 11年Ora...[詳細(xì)了解老師]

免費(fèi)咨詢上課流程 客服在線中

選學(xué)校如何選擇適合自己的學(xué)校

CUUG -CHINA UNIX USER GROUP,是國(guó)際UNIX組織UNIFORUM的中國(guó)代表,是國(guó)內(nèi)悠久的專業(yè)UNIX培訓(xùn)機(jī)構(gòu),被譽(yù)為中國(guó)UNIX 的搖籃。多年來(lái),以提高教學(xué)質(zhì)量為本,強(qiáng)調(diào)素質(zhì)教育,積極引進(jìn)、消化國(guó)外的新技術(shù),有效的結(jié)合中國(guó)....[詳情]

一站式服務(wù)(從入學(xué)到就業(yè)一幫到底)

入學(xué)

學(xué)習(xí)

就業(yè)

實(shí)操

食宿
地址:北京市海淀區(qū)田村山南路35號(hào)院17號(hào)樓
課程咨詢: 400-0909-964
企業(yè)服務(wù):137 1818 8639(陳經(jīng)理)
部分信息來(lái)源于網(wǎng)絡(luò),如有錯(cuò)誤請(qǐng)聯(lián)系指正!
版權(quán)所有@北京神腦資訊技術(shù)有限公司 (CUUG,中國(guó)UNIX用戶協(xié)會(huì)) Copyright 2016 ALL Rights Reserved 京ICP備11008061號(hào)-1