获取值更改的列的名称(postgresql)

时间:2013-11-19 03:04:27

标签: postgresql

是否可以获取插入或更新后值更改的列的名称?我知道TG_TABLE_NAME会获得值更改的表名,但我想获取列名字是可以的吗?

1 个答案:

答案 0 :(得分:2)

可以通过检查每列的OLD和NEW值来确定更改的列,例如:

IF (OLD.col1 IS DISTINCT FROM NEW.col1) THEN 'col1';
ELSIF (OLD.col2 IS DISTINCT FROM NEW.col2) THEN 'col2';
...

我怀疑你可以对OLDNEW变量做一些有趣的“除外”工作,或者对新变量进行FOR循环,这样你就不会有困难 - 对列列表进行编码。