sql—如何查看可通过新plpgsql访问的属性

m3eecexj  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(338)

假设我有一个plpgsql函数

  1. CREATE OR REPLACE FUNCTION function_name
  2. RETURNS TRIGGER AS ...
  3. BEGIN
  4. PERFORM
  5. 1
  6. FROM
  7. table1 t1
  8. JOIN
  9. table2 t2 USING( column_name )
  10. WHERE
  11. t1.column_name = NEW.column_name;
  12. RETURN NEW;
  13. END;
  14. DROP TRIGGER IF EXISTS trigger_name
  15. ON table1;
  16. CREATE TRIGGER trigger_name
  17. BEFORE INSERT ON table1
  18. FOR EACH ROW EXECUTE PROCEDURE function_name;

我注意到 table1 以及 table2 可使用 NEW.column_name . 如何查看可以访问的列的完整列表 NEW ?
另外,如果 table1 或者 table2 我无法访问的 NEW ,我怎样才能让您 NEW ?

n8ghc7c1

n8ghc7c11#

看这一行:

  1. BEFORE INSERT ON table1

这告诉您触发器是在 INSERT ON table1 . 这意味着你将 NEW. 列的任何列的名称 table1 ,而 table2 由触发器保持不变,使用没有意义 OLD 或者 NEW 因此它是非法的。所以,准确地说: NEW 为…工作 table1 列和不工作 table2 柱。

相关问题