2012-10-25 19 views
2

我一直在尋找一種方法來在觸發器函數內的INSERT期間獲取任何已修改列的名稱。我可以使用觸發器過程TG_TABLE_NAME來修改表,對於修改的列,有沒有類似的東西?獲取修改的列名稱的觸發器過程

回答

1

不,對於列名稱沒有與TG_TABLE_NAME等效的內容。您需要比較UPDATE觸發器中的oldnew記錄。

對於INSERT觸發「修改」列名的想法甚至沒有任何意義。你的意思是不是它們的默認值的列?

無論如何,你需要檢查NEW和(它適用)OLD記錄。動態執行這可能非常棘手。 hstore擴展通常是最有用的工具,因爲它允許您在未知行集的列之間進行比較和迭代。

+0

我的不好,我正在談論UPDATE觸發器本身。謝謝回覆。 – Shalin

+0

@Shalin更有意義。你可能會發現這個信息:wiki.postgresql.org/wiki/Audit_trigger_91plus –