TJ O'Donnell wrote:
> I have many different tables that I want to keep track of.
> So, I thought of a master table with those table names in it.
> But, to maintain this (suppose a table changes
> its name, gets dropped) I want to have some kind of referential
> integrity - the way foreign keys and constraints do.
> What could I use that would disallow inserting a name into
> the master table unless another table by that name already exists?
> And what could ensure that a table would not be renamed or dropped
> unless the master table is changed?
You can write your own triggers that would stop you from adding a
non-existent table to your master-table. You can't fire triggers on
changes to system tables though, so you can't stop someone adding a table.
In any case, you presumably want to track ALTER TABLE ADD COLUMN too so
you'll need something a little smarter.
Have you considered "pg_dump --schema-only" along with suitable
version-control software (CVS/Subversion/Arch etc)? Or are you trying to
track something specific?
--
Richard Huxton
Archonet Ltd