天天看點

ORACLE觸發器判斷是否更新了某個字段

        今天遇到一個有意思的小問題,一同僚有這樣一個需求:在更新表t時,如果隻是更新字段c,那麼不希望觸發該該表的觸發器去處理業務邏輯。即想在觸發器中做

出判斷:如果更新了字段c,那麼跳出觸發器,不處理業務邏輯,如果是更新其它字段,那麼讓觸發器去處理業務邏輯。

他是這樣做的

但是這樣有一個問題:更新不一定值有變化.當更新的值有變化時,它很好的實作了業務邏輯,但是如果更新的值沒有變化,那麼這段代碼就會失效了。

其實這個隻需要使用條件謂詞 deleting即可解決,當觸發事件是update時,如果修改了column_x時,則updating(column_x)則為true,否則為false,是以上面代碼改為下面代碼即可實作其業務需求: