最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL筆記之觸發(fā)器的應(yīng)用

 更新時(shí)間:2013年05月03日 15:46:24   作者:  
觸發(fā)器是由事件來(lái)觸發(fā)某個(gè)操作,這些事件包括INSERT語(yǔ)句,UPDATE語(yǔ)句和DELETE語(yǔ)句

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

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

復(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ā)器

復(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ā)器

復(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)變成;

復(fù)制代碼 代碼如下:

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ā)器信息

復(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ā)器信息

復(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ì)信息
復(fù)制代碼 代碼如下:

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ā)器

復(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ā)器刪除,以免造成意外操作

相關(guān)文章

  • mysql導(dǎo)入sql文件命令和mysql遠(yuǎn)程登陸使用詳解

    mysql導(dǎo)入sql文件命令和mysql遠(yuǎn)程登陸使用詳解

    這篇文章主要介紹了mysql導(dǎo)入sql文件命令和mysql遠(yuǎn)程登陸使用詳解,需要的朋友可以參考下
    2014-04-04
  • MySQL中的FIND_IN_SET函數(shù)的使用場(chǎng)景

    MySQL中的FIND_IN_SET函數(shù)的使用場(chǎng)景

    MySQL 中的?FIND_IN_SET()?函數(shù)用于在一個(gè)逗號(hào)分隔的字符串列表中查找指定的值,并返回其在列表中的位置,下面就來(lái)介紹一下FIND_IN_SET函數(shù)的具體使用,感興趣的可以了解一下
    2024-05-05
  • MySQL在右表數(shù)據(jù)不唯一的情況下使用left join的方法

    MySQL在右表數(shù)據(jù)不唯一的情況下使用left join的方法

    這篇文章主要介紹了MySQL在右表數(shù)據(jù)不唯一的情況下使用left join的方法,針對(duì)右表符合條件表達(dá)式的記錄數(shù)大于1條時(shí)left join所顯示的結(jié)果需求來(lái)講,需要的朋友可以參考下
    2016-03-03
  • MySQL數(shù)據(jù)庫(kù)算術(shù)運(yùn)算舉例詳解

    MySQL數(shù)據(jù)庫(kù)算術(shù)運(yùn)算舉例詳解

    這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)算術(shù)運(yùn)算的相關(guān)資料,MySQL支持的算術(shù)運(yùn)算符包括加、減、乘、除和模運(yùn)算,它們是最常使用、最簡(jiǎn)單的一類運(yùn)算符,需要的朋友可以參考下
    2024-01-01
  • MySQL中查詢字段為空或者為null的方法

    MySQL中查詢字段為空或者為null的方法

    這篇文章主要介紹了MySQL中查詢字段為空或者為null的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Mysql大小寫敏感的問(wèn)題

    Mysql大小寫敏感的問(wèn)題

    這篇文章主要介紹了Mysql大小寫敏感的問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2015-03-03
  • MySQL觸發(fā)器的使用詳解

    MySQL觸發(fā)器的使用詳解

    觸發(fā)器trigger是一種特殊的存儲(chǔ)過(guò)程,他在插入(inset)、刪除(delete)或修改(update)特定表中的數(shù)據(jù)時(shí)觸發(fā)執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于MySQL觸發(fā)器使用的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • MySQL慢查詢?nèi)罩局械腖ock_time由來(lái)解析

    MySQL慢查詢?nèi)罩局械腖ock_time由來(lái)解析

    這篇文章主要為大家介紹了慢查詢?nèi)罩局蠰ock_time的由來(lái)解析,以及Lock_time?包含哪些鎖等待時(shí)間、以及是怎么計(jì)算得到的,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2023-06-06
  • MySQL中使用group by 是總是出現(xiàn)1055的錯(cuò)誤(推薦)

    MySQL中使用group by 是總是出現(xiàn)1055的錯(cuò)誤(推薦)

    這篇文章主要介紹了MySQL中使用group by 是總是出現(xiàn)1055的錯(cuò)誤,小編通過(guò)查閱相關(guān)資料才把問(wèn)題解決,今天小編記錄下分享到腳本之家平臺(tái),需要的朋友可以參考下
    2020-02-02
  • mysql增量語(yǔ)句如何修改表的字段

    mysql增量語(yǔ)句如何修改表的字段

    本文介紹了如何在MySQL中實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增量更新,確保多次執(zhí)行增量語(yǔ)句不會(huì)影響最終結(jié)果,通過(guò)使用存儲(chǔ)過(guò)程,解決了MySQL無(wú)法直接執(zhí)行塊語(yǔ)句的問(wèn)題,文章詳細(xì)描述了增量添加、修改和刪除某個(gè)字段的操作,并總結(jié)了增量語(yǔ)句的編寫方法,類似于編寫冪等接口
    2024-12-12

最新評(píng)論

波密县| 德庆县| 大邑县| 乐安县| 柏乡县| 金寨县| 阳春市| 临漳县| 广宗县| 特克斯县| 阿拉善左旗| 三都| 托克托县| 南陵县| 北安市| 宁安市| 高邑县| 定襄县| 葵青区| 江口县| 许昌县| 汾阳市| 伽师县| 涪陵区| 金溪县| 交口县| 攀枝花市| 洪湖市| 阿荣旗| 阿巴嘎旗| 孟连| 毕节市| 全椒县| 敦煌市| 太白县| 颍上县| 志丹县| 十堰市| 石柱| 乐安县| 盐津县|