Re: Literals in foreign key definitions - Mailing list pgsql-general

From Tim Landscheidt
Subject Re: Literals in foreign key definitions
Date
Msg-id m3zl3on6b8.fsf@passepartout.tim-landscheidt.de
Whole thread Raw
In response to Literals in foreign key definitions  (Alban Hertroys <dalroi@solfertje.student.utwente.nl>)
Responses Re: Literals in foreign key definitions  (Alban Hertroys <dalroi@solfertje.student.utwente.nl>)
List pgsql-general
Alban Hertroys <dalroi@solfertje.student.utwente.nl> wrote:

> [...]
> Now the intent here is to restrict foreign keys referencing the base class to unitclass records that describe a
baseclassand to restrict foreign keys referencing a derived class to unitclass records that do NOT describe a
baseclass.
> Basically I'm trying to disallow derived classes to be derived of other derived classes.

> I can of course add a few triggers to force that constraint, but I think it would be nice if the above syntax could
bemade to work. Or is this already in 8.4 or 8.5 or is this a can of worms? Does the SQL spec disallow it? 

If you want to avoid triggers, another, simpler approach is
to have a otherwise superfluous column "is_baseclass" with a
default "TRUE" and constraints "NOT NULL" and
"CHECK(is_baseclass)" and then use a "normal" foreign key
constraint. I usually find that easier to read as it's more
familiar.

Tim

pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: Any Good Postgresql Courses Offered in the US Area?
Next
From: Magnus Hagander
Date:
Subject: Re: Re: PG fails on Windows Server 2008: could not reattach to shared memory ... : 487