是否可以获取插入或更新后值更改的列的名称?我知道TG_TABLE_NAME会获得值更改的表名,但我想获取列名字是可以的吗?
答案 0 :(得分:2)
可以通过检查每列的OLD和NEW值来确定更改的列,例如:
IF (OLD.col1 IS DISTINCT FROM NEW.col1) THEN 'col1';
ELSIF (OLD.col2 IS DISTINCT FROM NEW.col2) THEN 'col2';
...
我怀疑你可以对OLD
和NEW
变量做一些有趣的“除外”工作,或者对新变量进行FOR
循环,这样你就不会有困难 - 对列列表进行编码。