MySQL觸發器基本介紹

來源:互聯網
上載者:User

標籤:包含   基本   導致   基於   特定   簡介   問題   line   之間   

基本簡介:  1.觸發器可以讓你在執行insert,update,delete語句的時候,執行一些特定的操作。並且可以在MySQL中指定是在sql語句執行前觸發還是執行後觸發。  2.觸發器沒有傳回值。  3.觸發器可以減少用戶端和伺服器之間的通訊,所以觸發器可以簡化應用邏輯,還可以提高效能。  4.mysql觸發器的實現非常簡單,所以功能也有限。 注意事項:  1.對每一個表的每一個事件,最多隻能定義一個觸發器(即不能再after insert上定義兩個觸發器);  2.MySQL只支援“基於行的觸發”——也就是說,觸發器始終是針對一條記錄的,而不是針對整個SQL語句的。如果變更的資料集非常大的話,效率會很低。 觸發器的限制:  1.觸發器可以掩蓋伺服器背後的工作,一個簡單的sql語句背後,因為觸發器,可能包含很多看不見的工作。例如觸發器可能會更新另一個相關表,那麼這個觸發器會讓這條SQL影響的記錄數翻一倍。  2.觸發器的問題很難排查,如果某個效能問題和觸發器有關,會很難分析和定位。  3.觸發器可能會導致死結或者鎖等待。如果觸發器失敗,那麼原來的SQL語句也會失敗。如果沒有意識到這其中是觸發器在搞鬼,那麼很難理解伺服器拋出的錯誤碼是什麼意思。 說明:  1.觸發器不一定能保證更新的原子性。  2.Innodb表上的觸發器是在同一個事務中完成的,所以它們執行的操作是原子的,原操作和觸發器操作會同時成功或者失敗。如果在InnoDB表上建觸發器去檢查資料的一致性,需要特別小心 MVCC,稍不小心,就會得到錯誤的結果。  3.觸發器非常有用,特別是實現一些約束,系統維護任務,以及更新反範式化資料的時候。  4.還可以試用觸發器來記錄資料變更日誌。

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.