I have a trigger associated to a table. When i drop it via
DROP TRIGGER IF EXISTS myTrigger on dummytable;
postgres tells me
NOTICE: trigger "mytrigger" for table "dummytable" does not exist, skipping
DROP TRIGGER
When i use a dummy table for tests this works. I've tried:
- changing CaSe,
- making the trigger name longer (the real trigger is 17 chars long)
When testing it always drops without issue.
This is Postgres 8.2 on Linux. What does work is adding quotation marks:
DROP TRIGGER IF EXISTS "myTrigger" on dummytable;
Why this is so is beyond me, there's nothing in the docs that mentions the name must be in quotation marks.
Am i missing something obvious?
Best Answer
The behaviour you've described is correct and documented : http://www.postgresql.org/docs/8.2/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
If the trigger have been created with double quote and special char, it must be used with the same syntax.