PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Prevenir gatilho recursivo no PostgreSQL


Isso é o que eu faço no PostgreSQL 9.2, embora eu deva admitir que não encontrei essa abordagem documentada. Existe uma função pg_trigger_depth() documentado aqui, que eu uso para diferenciar entre chamadas originais e aninhadas no gatilho.
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()