我有一个触发设置一个行被更新或插入表A后也有引用表一表B,但也有,我想分析一下,一个布尔另一列火了(所以这个功能将只可用上的UPDATE)。
当尝试访问列: SELECT col1 FROM B WHERE B.aID = NEW.ID;
此列col1
始终是NULL。
为什么是这样? 我怎样才能在一个更新的布尔值?
我有一个触发设置一个行被更新或插入表A后也有引用表一表B,但也有,我想分析一下,一个布尔另一列火了(所以这个功能将只可用上的UPDATE)。
当尝试访问列: SELECT col1 FROM B WHERE B.aID = NEW.ID;
此列col1
始终是NULL。
为什么是这样? 我怎样才能在一个更新的布尔值?
我不得不猜测,因为你巧妙地保留了功能定义一个秘密。 (反语意。)
最有可能您正在运行到一个命名冲突。 参数名称( IN
和OUT
参数)是函数体(几乎)任何地方可见和优先不合格的列名。 你声明col1
在函数变量?
为了避免冲突, 表限定列名:
SELECT b.col1 FROM tableb b WHERE b.aID = NEW.ID;
这是在任何情况下很好的做法。
这也是前缀变量名很好的做法,所以他们通常不会与表列冲突。 像: _col1
。
发布完整的函数定义,如果没有解决不了的问题。