How to drop an trigger
От | Frank Joerdens |
---|---|
Тема | How to drop an |
Дата | |
Msg-id | 20010308164246.A16533@rakete.joerdens.de обсуждение исходный текст |
Ответы |
Re: How to drop an |
Список | 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 по дате отправления: