Re: orphaned RI constraints
От | Stephan Szabo |
---|---|
Тема | Re: orphaned RI constraints |
Дата | |
Msg-id | Pine.BSF.4.21.0107061327170.75952-100000@megazone23.bigpanda.com обсуждение исходный текст |
Ответ на | orphaned RI constraints (Somazx Interesting <somazx@home.com>) |
Список | pgsql-general |
On Fri, 6 Jul 2001, Somazx Interesting wrote: > > I'm working with two different postgres installations - they're both > v7.1.2. On one I can drop a table and the related constraint info seems to > go away with the table, on the other the restraint trigger seems to remain > in the system tables and then when I try to delete rows from tables once > related to the dropped table I get errors saying the dropped tabled doesn't > exist - which I'm interpreting as the RI trigger trying to do its thing and > failing. > > Questions: > > 1) Is this possible, or should I look for another explanation. > > 2) Can I fix things by dropping the constraint info from the system tables, > if so how? Is there a function which cleans the system tables checking for > problems like orphaned triggers, functions and sequences? Is it possible that the one that's failing was restored from an old dump output? I believe there was a problem (I think resolved) where the triggers lost track of the other table involved after a dump/restore which could have this effect. To fix it, you should be able to use DROP TRIGGER on the appropriate triggers that were created (you can find these through a select on pg_trigger, using the tgargs to find the appropriate ones). As a warning, you need to double quote the trigger name, so for example if you saw the following rows for the constraint: 782359 | RI_ConstraintTrigger_782384 | 1654 | 9 | true | true | <unnamed> | 782372 | false | false | 6 | | <unnamed>\000qqq2\000qqq\000UNSPECIFIED\000a\000a\000 782359 | RI_ConstraintTrigger_782386 | 1655 | 17 | true | true | <unnamed> | 782372 | false | false | 6 | | <unnamed>\000qqq2\000qqq\000UNSPECIFIED\000a\000a\000 you should be able to do DROP TRIGGER "RI_ConstraintTrigger_782384"; DROP TRIGGER "RI_ConstraintTrigger_782386";
В списке pgsql-general по дате отправления: