How to drop an trigger

Поиск
Список
Период
Сортировка
От Frank Joerdens
Тема How to drop an trigger
Дата
Msg-id 20010308164246.A16533@rakete.joerdens.de
обсуждение исходный текст
Ответы Re: How to drop an trigger  (Frank Joerdens <frank@joerdens.de>)
Список pgsql-sql
I've created quite a few foreign key constraints in the database that I
am currently working on, and now that I've altered the structure and
dropped a table that had a foreign key reference to a couple of other
tables, I need to get rid of those foreign keys (they weren't dropped
automagically with the table), as I get errors on trying to update those
tables.

Trouble is that the foreign keys show up in a schema dump as <unnamed>
triggers (AFAIK there is no other way to display foreign key
constraints) which I don't know how to drop. Here's an example:

\connect - frank
--
-- TOC Entry ID 56 (OID 52367)
--
-- Name: "RI_ConstraintTrigger_52366" Type: TRIGGER Owner: frank
--

CREATE CONSTRAINT TRIGGER "<unnamed>" AFTER DELETE ON "index"  NOT
DEFERRABLE INITIALLY IMMEDIATE FOR EACH ROW EXECUTE PROCEDURE
"RI_FKey_cascade_del" ('<unnamed>', 'legende', 'index', 'UNSPECIFIED',
'platz', 'id');

I tried dropping it with 

=# drop trigger RI_ConstraintTrigger_52366 on index;

which fails with

ERROR:  DropTrigger: there is no trigger ri_constrainttrigger_52366 on
relation index

What to do? And more broadly, what's the recommended way to deal with
this in general? Avoid creating <unnamed> triggers by always creating named
foreign keys with something like

ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address)
REFERENCES addresses(address) MATCH FULL;

(from Bruce's book)?

Regards, Frank


В списке pgsql-sql по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Buglet?
Следующее
От: "Josh Berkus"
Дата:
Сообщение: Re: No Documentation for to_char(INTERVAL, mask)