Postgresql 如何确定触发器是否通过级联调用?

Postgresql 如何确定触发器是否通过级联调用?,postgresql,plpgsql,cascading-deletes,Postgresql,Plpgsql,Cascading Deletes,如果这是级联操作,我如何告诉触发器继续执行?它有关键字吗 IF condition THEN IF TG_OP = 'DELETE' AND operation_is_a_result_of_cascade_delete THEN RETURN OLD; ELSE -- my constraints go here END IF; END IF; 我想施加某些条件,但前提是DELETE不是由外键约束的CASCADING关键字引起的。我不确定是否理解您的问题,但您可以

如果这是级联操作,我如何告诉触发器继续执行?它有关键字吗

IF condition THEN
  IF TG_OP = 'DELETE' AND operation_is_a_result_of_cascade_delete THEN
    RETURN OLD;
  ELSE
    -- my constraints go here
  END IF;
END IF;

我想施加某些条件,但前提是
DELETE
不是由外键约束的
CASCADING
关键字引起的。

我不确定是否理解您的问题,但您可以使用
pg\u trigger\u depth()
来确定您的触发器是否是通过另一个触发器调用的


如果结果为1,则触发器被顶级语句调用。

我将检查
pg\u trigger\u depth()
,谢谢。但我的问题中有什么不清楚?我想把它说得更清楚一些。关于你的问题,我唯一清楚的部分是“重新措辞”。我不知道什么是“继续交易”。我想这是一个恰当的技术术语问题。我会看看我能做些什么。这很有效,我忘记接受答案了,对不起!我将它设置为触发器触发的条件-
当(pg_trigger_depth()<1)
时,因此级联删除甚至不会触发函数。非常感谢。