溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL數(shù)據(jù)庫提升篇-----觸發(fā)器

發(fā)布時間:2020-08-05 12:40:42 來源:網(wǎng)絡 閱讀:501 作者:孤獨一夜 欄目:MySQL數(shù)據(jù)庫

day06 MySQL數(shù)據(jù)庫提升篇-----觸發(fā)器

一、觸發(fā)器概述:

    觸發(fā)器是什么?能有什么作用?能給我們帶來什么樣的操作數(shù)據(jù)庫的方法這都在這里學一一的告訴大家。觸發(fā)器原理類似于扳機的原理,當你一點擊觸發(fā)的時候就會產(chǎn)生相應的后續(xù)動作。下面就具體的創(chuàng)建和使用一下觸發(fā)器。


二、觸發(fā)器(trigger):

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

        create trigger 觸發(fā)器名  before |  after  觸發(fā)事件
        on 表名 for each row 
        begin
            執(zhí)行語句;
        end;
        譯:
            before |  after:表示觸發(fā)器執(zhí)行的時間,前者是表示觸發(fā)前執(zhí)行,
                             后者是表示觸發(fā)時間之后執(zhí)行
            觸發(fā)事件:觸發(fā)事件代表“insert”、“update”、“delete”三種操作
            表名:指定的觸發(fā)時間操作的表的名稱
            for each row :表示任何一條記錄上的操作滿足觸發(fā)器事件都會觸發(fā)該觸發(fā)器
            begin ... end:表示開始到結束標簽。
            執(zhí)行語句:表示觸發(fā)器被觸發(fā)以后執(zhí)行的程序。

    實例一:

        創(chuàng)建一個響應delete操作的觸發(fā)器

        create trigger dlt after delete
        on student for echo row
        begin
            delete username from student;
        end;
        譯:
            創(chuàng)建的觸發(fā)器名:dlt
            觸發(fā)器執(zhí)行時間:after
            事件名:刪除操作(delete)
            表名:student
            執(zhí)行語句:從begin.....end之間的刪除語句。

    2、創(chuàng)建多個執(zhí)行語句的觸發(fā)器

        create trigger 觸發(fā)器名  before |  after  觸發(fā)事件
        on 表名 for each row 
        begin
            執(zhí)行語句1;
            執(zhí)行語句2;
            執(zhí)行語句3;
        end;
        譯:
            before |  after:表示觸發(fā)器執(zhí)行的時間,前者是表示觸發(fā)前執(zhí)行,
                             后者是表示觸發(fā)時間之后執(zhí)行
            觸發(fā)事件:觸發(fā)事件代表“insert”、“update”、“delete”三種操作
            表名:指定的觸發(fā)時間操作的表的名稱
            for each row :表示任何一條記錄上的操作滿足觸發(fā)器事件都會觸發(fā)該觸發(fā)器
              begin ... end:表示開始到結束標簽。
            執(zhí)行語句1:表示觸發(fā)器被觸發(fā)以后執(zhí)行的程序1。
            執(zhí)行語句2:表示觸發(fā)器被觸發(fā)以后執(zhí)行的程序2。
            執(zhí)行語句3:表示觸發(fā)器被觸發(fā)以后執(zhí)行的程序3。

    實例二:

        創(chuàng)建一個響應delete操作的多個觸發(fā)器

        create trigger dlt after delete
        on student for echo row
        begin
            insert into timelog(savetime) values(new());
            insert into timeinfo(info) values('deleteact');
        end;
        譯:
            創(chuàng)建的觸發(fā)器名:dlt
            觸發(fā)器執(zhí)行時間:after
            事件名:刪除操作(delete)
            表名:student
            執(zhí)行語句體:從begin.....end之間的刪除語句。

    3、查看觸發(fā)器

        show trigger;

        3.1、查看trigger表中觸發(fā)器信息

            select * from infomation_schema.trigger;
            譯:
                infomation_schema:是MySQL中默認存在的數(shù)據(jù)庫,用于記錄觸發(fā)器信息的數(shù)據(jù)表

        3.2、方法二查看

            select * from infomation_schema.trigger where trigger_name='觸發(fā)器名稱';

    4、應用觸發(fā)器

        觸發(fā)器的應用就是在你創(chuàng)建成功以后,單獨的向表中執(zhí)行相應的sql語句操作。通過查詢去看看你執(zhí)行的sql語句是否成功。查看timeinfo數(shù)據(jù)表的插入情況好而被首先執(zhí)行的順序。

    5、刪除觸發(fā)器

        drop trigger 觸發(fā)器名稱;


三、結束語:

    學到這里,我們的觸發(fā)器就學完了,我們可以利用觸發(fā)器進行數(shù)據(jù)的備份效果,當你刪除某一條數(shù)據(jù)的時候,我將這條數(shù)據(jù)新建存儲到另外的一張表中。這些都可以通過觸發(fā)器實現(xiàn)的。想很好的操作觸發(fā)器就不斷的去實驗和運用。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI