为行引用新的Postgres功能NULL值(Postgres Function NULL value

2019-06-27 11:54发布

我有一个触发设置一个行被更新或插入表A后也有引用表一表B,但也有,我想分析一下,一个布尔另一列火了(所以这个功能将只可用上的UPDATE)。

当尝试访问列: SELECT col1 FROM B WHERE B.aID = NEW.ID;

此列col1始终是NULL。

为什么是这样? 我怎样才能在一个更新的布尔值?

Answer 1:

我不得不猜测,因为你巧妙地保留了功能定义一个秘密。 (反语意。)

最有可能您正在运行到一个命名冲突。 参数名称( INOUT参数)是函数体(几乎)任何地方可见和优先不合格的列名。 你声明col1在函数变量?

为了避免冲突, 表限定列名:

SELECT b.col1 FROM tableb b WHERE b.aID = NEW.ID;

这是在任何情况下很好的做法。

这也是前缀变量名很好的做法,所以他们通常不会与表列冲突。 像: _col1

发布完整的函数定义,如果没有解决不了的问题。



文章来源: Postgres Function NULL value for row that references NEW