MySQL 如何處理觸發器執行期間的錯誤?


假設觸發器執行期間發生錯誤,則 MySQL 可以按以下方式處理該錯誤:

  • 如果 BEFORE 觸發器失敗,則不會執行對相應行的操作。
  • 無論嘗試是否隨後成功,BEFORE 觸發器都會因嘗試插入或修改該行而被啟用。
  • 僅當所有 BEFORE 觸發器和行操作都成功執行後,才會執行 AFTER 觸發器。
  • BEFORE 或 AFTER 觸發器的錯誤會導致觸發器呼叫的整個語句失敗。
  • 對於事務表,語句失敗應導致語句執行的所有更改回滾。觸發器失敗會導致語句失敗,因此觸發器失敗也會導致回滾。對於非事務表,無法執行此類回滾,因此儘管語句失敗,但在錯誤之前執行的任何更改仍會生效。

更新於:22-06-2020

966 次瀏覽

開啟你的 職業

完成課程以獲得認證

開始
廣告