sql >> Databasteknik >  >> RDS >> PostgreSQL

Förhindra rekursiv trigger i PostgreSQL

Detta är vad jag gör i PostgreSQL 9.2, även om jag måste erkänna att jag inte hittade detta tillvägagångssätt dokumenterat. Det finns en funktion pg_trigger_depth() dokumenteras här, som jag använder för att skilja mellan ursprungliga och kapslade anrop i triggern.

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()


  1. Hur väljer man den n:e raden i en SQL-databastabell?

  2. Array i IN()-satsen oracle PLSQL

  3. Vad du ska leta efter om din PostgreSQL-replikering släpar efter

  4. Hur frågar jag alla rader inom en radie på 5 mil från mina koordinater?