Re: Foreign keys and pg_user table - Mailing list pgsql-general

From Stephan Szabo
Subject Re: Foreign keys and pg_user table
Date
Msg-id 20031211092114.T34888@megazone.bigpanda.com
Whole thread Raw
In response to Foreign keys and pg_user table  ("C G" <csgcsg39@hotmail.com>)
List pgsql-general
On Thu, 11 Dec 2003, C G wrote:

> I'm trying to create a table where the username and email can only be
> inserted into the table if the username is already in pg_user. The method
> I'm trying is:
>
> CREATE user(
>   usename name,
>   email text,
>   FOREIGN KEY usename REFERENCES (pg_user)
> );
>
> but I get told that "...pg_user is not a table."

Which is true, it's a view.  However, even were it a table,
it's a system table and references to them are not allowed (in recent
versions it'll fail to make the constraint, in older versions it would
make the constraint but it wouldn't work).

> Is there another way of doing what I want?

You could potentially do the insert/update on user time check in a custom
trigger.  That wouldn't prevent you from dropping a user later that was
referenced, however.

pgsql-general by date:

Previous
From: Oliver Elphick
Date:
Subject: Re: Strange permission problem regarding pg_settings
Next
From: "Keith C. Perry"
Date:
Subject: Re: [NOVICE] PostgreSQL Training