在Oracle數(shù)據(jù)庫(kù)中,觸發(fā)器的更新策略取決于觸發(fā)器的類型和激活時(shí)間。根據(jù)激活時(shí)間,Oracle數(shù)據(jù)庫(kù)的觸發(fā)器可以分為BEFORE觸發(fā)器和AFTER觸發(fā)器。
BEFORE觸發(fā)器:BEFORE觸發(fā)器在觸發(fā)事件之前執(zhí)行,可以用來修改觸發(fā)事件中的數(shù)據(jù)。如果BEFORE觸發(fā)器在執(zhí)行過程中出現(xiàn)錯(cuò)誤或者觸發(fā)器中的操作導(dǎo)致主動(dòng)觸發(fā)事件失敗,主動(dòng)觸發(fā)事件將被取消,事務(wù)將回滾到更新前的狀態(tài)。
AFTER觸發(fā)器:AFTER觸發(fā)器在觸發(fā)事件之后執(zhí)行,一般可以用來記錄操作日志或者執(zhí)行一些與主動(dòng)觸發(fā)事件無關(guān)的操作。AFTER觸發(fā)器的執(zhí)行不會(huì)影響主動(dòng)觸發(fā)事件的結(jié)果,即使AFTER觸發(fā)器出現(xiàn)錯(cuò)誤也不會(huì)影響主動(dòng)觸發(fā)事件的結(jié)果。
在使用BEFORE觸發(fā)器時(shí),需要謹(jǐn)慎處理,避免觸發(fā)器中的操作導(dǎo)致主動(dòng)觸發(fā)事件失敗。在使用AFTER觸發(fā)器時(shí),通常可以放心執(zhí)行一些額外的操作,因?yàn)檫@些操作不會(huì)影響主動(dòng)觸發(fā)事件的結(jié)果。