在oracle中我可以指定列,這應該引起觸發的點火一列的更新:甲骨文:不包括髮射扳機
create or replace trigger my_trigger
before update of col1, col2, col3 on my_table for each row
begin
// the trigger code will be executed only if col1 or col2 or col3 was updated
end;
現在我要做到以下幾點:我不t想要觸發器觸發,當只有一個列被更新。這怎麼可能?
我可以列出除了那個之外的所有列,這些列不應觸發觸發器。對於有許多列的表格,這非常麻煩。
另一種方法是使用更新功能是這樣的:
if not updating('COL3') then ...
但如果我一旦改變COL1 和 COL3的,語句的計算結果爲假。這不是我想要的,因爲我想限制執行時只有一個列(COL3)已更新。
使用數據字典列出所有列不那麼麻煩。 'SELECT column_name FROM user_tab_columns WHERE table_name ='MY_TABLE'AND column_name!='COL3';' –
這是真的,但其他人需要維護觸發器。如果我們要添加一個新的專欄或重命名它......我已經可以聽到他大聲驚叫了。我希望找到一種可靠的方式,減輕他的痛苦,尤其是我。 ;-) –