Re: Is this a bug, or is it just me?

From: Jan Wieck <janwieck(at)Yahoo(dot)com>
To: Josh Berkus <josh(at)agliodbs(dot)com>
Cc: sqllist <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Is this a bug, or is it just me?
Date: 2001-02-08 10:59:12
Message-ID: 200102081059.FAA02777@jupiter.greatbridge.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Josh Berkus wrote:
> Tom et al.
>
> Discovered this quirk in foriegn keys:
>
> In the preliminary version of a database, I added foriegn
> key constraints to a number of tables, linking them to a
> column in a shared reference table (status.status) that was
> only one-half of a composite primary key (and thus the
> values were not unique). When I tried to delete a row
> containing a "2" in the status column from the status
> relation, I received a Foreign Key violation error event
> though there were other "2"'s in the table still present.
>
> So ... is this a bug in forign key implementation, or just
> my fault for keying off a non-unique value?
>
> And, if the latter, is there a way I can construct a foreign
> key constraint that keys onto a view or query?

The referenced columns of a foreign key constraint shall have
a unique constraint. That's how it is in the SQL specs. So
it is a bug that the system let's you specify the constraint
at all. I think Stephan fixed it for 7.1.

OTOH Postgres doesn't (and shouldn't) enforce it after,
because if it would, you couldn't drop/create a corrupted
index.

And no, you can't actually reference to a view or anything
else than a table. That is, because the system wouldn't know
how to check for the DELETE/UPDATE cases on the base tables
building the view if the removal of a key would violate
existing references.

For such custom setups, we have procedural languages and
triggers.

Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck(at)Yahoo(dot)com #

_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Jan Wieck 2001-02-08 11:37:22 Re: [SQL] PL/PGSQL function with parameters
Previous Message Jan Wieck 2001-02-08 09:38:44 Re: Hrm...why is this wrong?