From: Markus Bertheau <twanger@bluetwanger.de>
To: Josh Berkus <josh@agliodbs.com>
Cc: olly@lfix.co.uk
Cc: pgsql-sql@postgresql.org
Subject: Re: multi column foreign key for implicitly unique columns
Date: Wed, 18 Aug 2004 08:00:21 +0200
Message-ID: <1092808820.2728.27.camel@teetnang> (raw)
In-Reply-To: <200408171945.15663.josh@agliodbs.com>
References: <1092734724.2627.4.camel@dicaprio.akademie1.de>
<1092735576.28365.48.camel@linda>
<1092736197.2627.12.camel@dicaprio.akademie1.de>
<200408171945.15663.josh@agliodbs.com>
В Срд, 18.08.2004, в 04:45, Josh Berkus пишет:
> Markus,
Hi Josh,
> Hey, I see you figured out a workaround to writing a trigger for this. Let's
> see if we can make it work.
>
> ERROR: there is no unique constraint matching given keys
> for referenced table "objects"
>
> The reason for this is that CASCADE behavior gets quite odd when there is an
> FK reference to a non-unique column. We used to allow it, in 7.1, and I was
> responsible for a number of bug reports that led to us disallowing it. It
> should be theoretically implementable and relationally sound but will require
> a *lot* of troubleshooting to make work. So far, nobody's really interested
> enough.
>
> However, you have an easy way out:
>
> ALTER TABLE objects ADD CONSTRAINT obj_unq_2 UNIQUE (name, class_name);
I was worried about the performance hit because (name, class_name) will
always be unique, yet they will be checked for uniqueness.
Thanks
--
Markus Bertheau <twanger@bluetwanger.de>
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: twanger@bluetwanger.de, josh@agliodbs.com, olly@lfix.co.uk
Subject: Re: multi column foreign key for implicitly unique columns
In-Reply-To: <1092808820.2728.27.camel@teetnang>
* 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