MySQL 如何處理觸發器執行期間的錯誤?
假如一個錯誤發生在觸發器執行期間,那麼 MySQL 處理這種情況如下 −
- 如果一個 BEFORE 觸發器失敗,則對相應行執行的操作不會被執行。
- 一個 BEFORE 觸發器會被插入或修改行的嘗試啟用,無論此嘗試隨後是否成功。
- 一個 AFTER 觸發器只有當任何 BEFORE 觸發器和行操作執行成功時才會被執行。
- 無論是在 BEFORE 還是 AFTER 觸發器中,一個錯誤都會導致觸發器呼叫的整個語句失敗。
- 對於事務表,一個語句的失敗應當導致語句執行的所有變更回滾。一個觸發器的失敗會導致語句失敗,所以觸發器的失敗也會導致回滾。對於非事務表,這樣的回滾無法完成,所以儘管這個語句失敗了,但在錯誤點之前執行的任何變更仍然有效。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP