How to enumerate foreign key constraints after migrating from 7.1.3?
Forest Wilkinson <lyris-pg@tibit.com>
From: Forest Wilkinson <lyris-pg@tibit.com>
To: pgsql-general@postgresql.org
Date: 2003-06-10T21:45:07Z
Lists: pgsql-hackers
I'm porting a postgres client app (along with all the users' databases) from postgres 7.1.3 to 7.3.x. The new version of the app needs a way of enumerating foreign key constraints on a table, including the constraint names and the constrained columns. Unfortunately, postgres 7.1.3 didn't have a pg_constraint table, and the dump/restore process doesn't create the appropriate pg_constraint rows for foreign keys when migrating. With that in mind, how can I enumerate foreign key constraints in any database, whether it was originally created with postgres 7.1.3 or 7.3.x? It looks like I can get a list of constraint names from the pg_trigger table, but each foreign key constraint corresponds to several triggers on either of the two tables involved. How can I distinguish the referenced table from the referencing one? Is pg_trigger even the correct place to look? Once I find a migrated foreign key constraint, since it won't have an entry in pg_constraint, will I be able to drop it?