mysql之對觸發器的操作

來源:互聯網
上載者:User

標籤:

1. 為什麼要使用觸發器?

觸發器與函數有些類似,都需要聲明,執行。但是觸發器的執行不是由程式調用,也不是由手工啟動,而是由事件來觸發,啟用,從而實現執行。

當觸發DELETE,INSERT,UPDATE語句的時候會觸發啟用觸發器,其他的SQL語句則不會啟用觸發器。

當處理一些商務邏輯,表的資料發生更改時,能夠自動進行一些處理,這時就可以使用觸發器處理資料庫物件。

觸發器的操作包括建立觸發器,查看觸發器以及刪除觸發器。

2. 建立觸發器

2.1 建立有一條執行語句的觸發器

CREATE TRIGGER trigger_name BEFORE | AFTER trigger_event ON table_name FOR EACH    ROW trigger_stmt;

樣本如下:

CREATE TRIGGER tri_diary BEFORE INSERT ON t_dept FOR EACH ROW INSERT INTO t_diary VALUES(NULL,‘t_dept‘,NOW());

當向部門表t_dept插入任意一條記錄時,就會在插入操作之前向表t_diary中插入目前時間記錄。

2.2 建立包含多條執行語句的觸發器

CREATE TRIGGER trigger_name BEFORE | AFTER trigger_event ON table_name FOR EACH  ROW BEGIN trigger_stmt END;

樣本如下:

DELIMITER $$CREATE TRIGGER tri_diary BEFORE INSERT ON t_dept FOR EACH ROW BEGIN INSERT INTO t_diary VALUES(NULL,‘t_dept‘,NOW());INSERT INTO t_diary VALUES(NULL,‘t_dept‘,NOW());END$$DELIMITER;

上面樣本中,首先通過"DELIMITER $$"語句設定結束符為"$$",然後再關鍵字BEGIN和END之間編寫執行語句列表,最後通過"DELIMITER ;"語句將結束符號還原成預設結束符";"。

3. 查看觸發器

3.1 通過SHOW TRIGGERS語句查看觸發器

SHOW TRIGGERS會顯示所有觸發器的一個列表。

3.2 通過查看系統資料表triggers實現查看觸發器。

4. 刪除觸發器

DROP TRIGGER trigger_name;

mysql之對觸發器的操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.