Question: Is there any way to drop ALL triggers from ALL tables in Postgres? I know there's a pg\_trigger table I could look at, but it doesn't look like it contains enough information for me to decipher which triggers I have added to my tables.

It also looks like Foreign Key constraints show up in the pg\_trigger table, which I DO NOT want to drop. I just want to drop the user created trigger from my tables and keep the FKs.

Any suggestions?

Answer: 
Simply cascade drop the language in which you created the triggers.  

For example, I create triggers in `plpgsql`, so the following query deletes all triggers instantaneously -

```
DROP LANGUAGE plpgsql CASCADE;

```
Easiest will be to `pg_dump -s` object definitions and filter it for lines starting with `CREATE TRIGGER`.

Something like

```
./pg_dump -s db_name | grep '^CREATE TRIGGER' | \
  while read _ _ triggername _; do \
    echo drop trigger "$triggername;"; \
  done

```

(in bash) should work (review it and then run in database).

But perhaps you should consider `alter table table_name disable trigger trigger_name` instead.