MySql命令列建立和刪除觸發器

來源:互聯網
上載者:User

舉例如下:

現有表tab1和tab2

要求觸發器具有下面功能

當對tab1插入一條記錄時則tab2也插入相同的記錄

mysql>delimiter //mysql> CREATE TRIGGER t_afterinsert_on_tab1     -> AFTER INSERT ON tab1     -> FOR EACH ROW     -> BEGIN     -> insert into tab2(tab2_id) values(new.tab1_id);     -> END;     ->//
在執行如下語句,恢複設定
mysql> delimiter ;

其中delimiter作用: 告訴mysql解譯器,該段命令是否已經結束了,mysql是否可以執行了。預設情況下,delimiter是分號;。在命令列用戶端中,如果有一行命令以分號結束,那麼斷行符號後,mysql將會執行該命令。但有時候,不希望MySQL這麼做。在為可能輸入較多的語句,且語句中包含有分號。使用delimiter //,這樣只有當//出現之後,mysql解譯器才會執行這段語句。 也可以使用批處理建立觸發器

CREATE TRIGGER t_afterinsert_on_tab1AFTER INSERT ON tab1FOR EACH ROWBEGIN     insert into tab2(tab2_id) values(new.tab1_id);END;

將上面內容儲存為sql檔案執行它,注意前面也要用delimiter來改變語句結束標誌。刪除觸發器:

drop trigger t_afterinsert_on_tab1;

為什麼建立觸發器時使用 for each row 這是因為加上這句則觸發事件就是行級的,那麼對每一行有這個動作都要觸發一次事件

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.