Dit is wat ik doe in PostgreSQL 9.2, hoewel ik moet toegeven dat ik deze aanpak niet gedocumenteerd heb gevonden. Er is een functie pg_trigger_depth()
hier gedocumenteerd, die ik gebruik om onderscheid te maken tussen originele en geneste oproepen in de trigger.
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()