如何确定是否通过CASCADE调用了触发器?

时间:2018-09-24 15:10:57

标签: 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关键字引起的。

1 个答案:

答案 0 :(得分:1)

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

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