Postgresql

忽略更新觸發器上的特定列

  • February 10, 2022

我有一個 15 列的 PostgreSQL 表。我有一個on update觸發器。我想排除column10它。這意味著只有當有任何更新時,column10除此之外不應該有任何動作。如果完全更新或任何其他列更新,觸發器應該正常觸發。

我似乎沒有找到任何簡單的方法來做到這一點。有人可以建議嗎?

文件顯示on update您可以在觸發器中定義特定列:

create trigger foo
after update of column1, column2, ... -- other columns, except column10
on your_table ...

您可以在觸發器函式中擷取 column10 的更新

IF OLD.column10 = NEW.column10 THEN
 ... do the trigger stuff ...
ELSE
 ... do nothing, because column10 has been changed
END IF;

引用自:https://dba.stackexchange.com/questions/254379