Casey Allen Shobe <cshobe@secureworks.net> writes:
> create table "schemes" (
> ...
> "user_id" integer not null references "pg_user" ("usesysid"),
> ...
> ERROR: Referenced relation "pg_user" is not a table
> As you can hopefully see, I need to reference the postgres user table
> for data integrity. Can this be done?
Nope :-(. The immediate cause of that complaint is that pg_user isn't
a table; it's only a view on pg_shadow. But even if you'd referenced
pg_shadow, the command would have been rejected. The difficulty is that
foreign-key constraints require triggers, and we don't support
user-defined triggers on system catalogs. (That would imply the ability
to run arbitrary user-defined code during system catalog updates, which
has a ton of problems that I won't enumerate here.)
regards, tom lane