From: Jan Wieck <JanWieck@Yahoo.com>
To: Rod Taylor <rbt@rbt.ca>
Cc: Saad Saeed <saads@umich.edu>
Cc: pgsql-sql@postgresql.org
Subject: Re: Creating a foreign key on the Union of two tables
Date: Mon, 07 Apr 2003 17:41:00 -0400
Message-ID: <3E91F06C.2435AD35@Yahoo.com> (raw)
References: <a811aba0.0304061353.664e2263@posting.google.com>
<1049734135.40144.17.camel@jester>
Rod Taylor wrote:
>
> On Sun, 2003-04-06 at 17:53, Saad Saeed wrote:
> > I have 2 tables "A" and "B" in mySQL. They both have an attribute 'id'
> > which is unique between the 2 tables. I want the union of these 2
> > attributes to be a foreign key in a 3rd table "C". How do I specify
> > this constraing in sql (mySQL) in table C? And for complex reasons I
> > cannot merge the 2 tables A and B.
>
> Can't say for MySQL (since this is a PostgreSQL list!!!!!), but creating
> a foreign key like that to 2 different tables is against spec because
> one cannot create a unique constraint across 2 tables.
>
> That said, you could create a set of pl/pgsql functions that can imitate
> what a foreign key does and will work in the situation you describe --
> if you're using PostgreSQL.
Or seeting up table D plus custom triggers on A and B so that D contains
the union of both. That would result in a virtual unique constraint over
A and B together since the foreign key constraint now against D requires
it's id column to be unique.
Without more background on the purpose or the underlying business
process it's hard though to tell what's best.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck@Yahoo.com #
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: JanWieck@Yahoo.com, rbt@rbt.ca, saads@umich.edu
Subject: Re: Creating a foreign key on the Union of two tables
In-Reply-To: <3E91F06C.2435AD35@Yahoo.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox