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

How to determine if a trigger was called via CASCADE?

如何让我的触发器仅在级联操作时继续执行?有关键字吗?

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_trigger_depth() 来确定你的触发器是否是通过另一个触发器调用的。

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