Use CHECK when you create the table.
Ryan Riehle wrote:
> Hi,
>
> I have a key structure like so:
>
> a c b
> +----------+ +---------+ +----------+
> | PriKey1 |--->| ForKey |<---| PriKey2 |
> | | | Flag | | |
> +----------+ +---------+ +----------+
>
> ...where c.ForKey is a value from PriKey1 OR PriKey2, which are different
> values. All fields have the same data type; a.PriKey1 and b.PriKey2 are
> sequences. How does one enfore referential integrity in this structure so
> that c.ForKey references a.PriKeya when Flag is True or references b.PriKey2
> when Flag is False? Looked pretty hard through the lists and on Google last
> night with no luck :(
>
> -Ryan Riehle
> http://www.buildways.com
>
> KEYWORDS: one foreign key, multiple primary keys, multiple tables,
> generalization, superclass, subclass, constraint
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>