これは私がPostgreSQL9.2で行っていることですが、このアプローチが文書化されていないことを認めなければなりません。関数pg_trigger_depth()
があります ここに記載されています。これを使用して、トリガー内の元の呼び出しとネストされた呼び出しを区別します。
CREATE TRIGGER trg_taxonomic_positions
AFTER INSERT OR UPDATE OF taxonomic_position
ON taxon_concepts
FOR EACH ROW
WHEN (pg_trigger_depth() = 0)
EXECUTE PROCEDURE trg_taxonomic_positions()