Use the pg_trigger directory.
A simple search for the books table:
select tgname from pg_trigger where not tgisinternal and tgrelid = 'books'::regclass; tgname
Using pg_proc to get the source of the trigger function:
select tgname, proname, prosrc from pg_trigger join pg_proc p on p.oid = tgfoid where not tgisinternal and tgrelid = 'books'::regclass; tgname | proname | prosrc ---------------+---------------+------------------------------------------------ books_trigger | books_trigger | + | | begin + | | if tg_op = 'UPDATE' then + | | if new.listorder > old.listorder then + | | update books + | | set listorder = listorder- 1 + | | where listorder <= new.listorder + | | and listorder > old.listorder + | | and id <> new.id; + | | else + | | update books + | | set listorder = listorder+ 1 + | | where listorder >= new.listorder + | | and listorder < old.listorder + | | and id <> new.id; + | | end if; + | | else + | | update books + | | set listorder = listorder+ 1 + | | where listorder >= new.listorder + | | and id <> new.id; + | | end if; + | | return new; + | | end (1 row)
An example of using the pg_get_triggerdef() function:
select pg_get_triggerdef(t.oid) as "trigger declaration" from pg_trigger t where not tgisinternal and tgrelid = 'books'::regclass; trigger declaration
source share