假設(shè)如果觸發(fā)器執(zhí)行過(guò)程中發(fā)生錯(cuò)誤,MySQL 可以如下處理 –
- 如果 BEFORE 觸發(fā)器失敗,則執(zhí)行不執(zhí)行相應(yīng)的行。嘗試插入或修改行時(shí)會(huì)激活 BEFORE 觸發(fā)器,無(wú)論隨后的嘗試是否成功。僅執(zhí)行 AFTER 觸發(fā)器如果任何 BEFORE 觸發(fā)器和行操作成功執(zhí)行。BEFORE 或 AFTER 觸發(fā)器期間的錯(cuò)誤會(huì)導(dǎo)致導(dǎo)致觸發(fā)器調(diào)用的整個(gè)語(yǔ)句失敗。對(duì)于事務(wù)表,語(yǔ)句失敗應(yīng)導(dǎo)致該語(yǔ)句執(zhí)行的所有更改回滾。觸發(fā)器失敗會(huì)導(dǎo)致語(yǔ)句失敗,因此觸發(fā)器失敗也會(huì)導(dǎo)致回滾。對(duì)于非事務(wù)性表,無(wú)法執(zhí)行此類回滾,因此盡管語(yǔ)句失敗,但在錯(cuò)誤點(diǎn)之前執(zhí)行的任何更改仍然有效。
以上就是MySQL如何處理觸發(fā)器執(zhí)行過(guò)程中的錯(cuò)誤?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!