我一直在寻找一种方法来获取触发器函数内INSERT期间任何修改列的名称。我可以使用触发程序TG_TABLE_NAME修改表格,是否有类似的修改列?
答案 0 :(得分:1)
不,列名不等于TG_TABLE_NAME
。您需要比较old
触发器中的new
和UPDATE
记录。
对于INSERT
触发器,“修改”列名称的概念甚至没有任何意义。你的意思是指不是默认值的列吗?
无论如何,您需要检查NEW
和(适用的地方)OLD
记录。这可能很难动态地完成。 hstore
扩展名通常是最有用的工具,因为它允许您对未知行集的列进行比较和迭代。