2

我一直在寻找一种方法来在触发器函数中的 INSERT 期间获取任何已修改列的名称。我可以使用触发器过程 TG_TABLE_NAME 修改表,修改后的列有什么类似的吗?

4

1 回答 1

1

不,列名没有等价物TG_TABLE_NAME。您需要比较触发器中的oldnew记录。UPDATE

对于INSERT触发器,“修改”列名的想法甚至没有任何意义。您是指不是默认值的列吗?

无论如何,您需要检查NEWand (如果适用)OLD记录。动态地执行此操作可能会很棘手。该hstore扩展通常是最有用的工具,因为它允许您在未知行集的列之间进行比较和迭代。

于 2012-10-25T09:28:06.687 回答