2
我一直在尋找一種方法來在觸發器函數內的INSERT期間獲取任何已修改列的名稱。我可以使用觸發器過程TG_TABLE_NAME來修改表,對於修改的列,有沒有類似的東西?獲取修改的列名稱的觸發器過程
我一直在尋找一種方法來在觸發器函數內的INSERT期間獲取任何已修改列的名稱。我可以使用觸發器過程TG_TABLE_NAME來修改表,對於修改的列,有沒有類似的東西?獲取修改的列名稱的觸發器過程
不,對於列名稱沒有與TG_TABLE_NAME
等效的內容。您需要比較UPDATE
觸發器中的old
和new
記錄。
對於INSERT
觸發「修改」列名的想法甚至沒有任何意義。你的意思是不是它們的默認值的列?
無論如何,你需要檢查NEW
和(它適用)OLD
記錄。動態執行這可能非常棘手。 hstore
擴展通常是最有用的工具,因爲它允許您在未知行集的列之間進行比較和迭代。
我的不好,我正在談論UPDATE觸發器本身。謝謝回覆。 – Shalin
@Shalin更有意義。你可能會發現這個信息:wiki.postgresql.org/wiki/Audit_trigger_91plus –