Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我一直在寻找一种方法来在触发器函数中的 INSERT 期间获取任何已修改列的名称。我可以使用触发器过程 TG_TABLE_NAME 修改表,修改后的列有什么类似的吗?
不,列名没有等价物TG_TABLE_NAME。您需要比较触发器中的old和new记录。UPDATE
TG_TABLE_NAME
old
new
UPDATE
对于INSERT触发器,“修改”列名的想法甚至没有任何意义。您是指不是默认值的列吗?
INSERT
无论如何,您需要检查NEWand (如果适用)OLD记录。动态地执行此操作可能会很棘手。该hstore扩展通常是最有用的工具,因为它允许您在未知行集的列之间进行比较和迭代。
NEW
OLD
hstore