Re: Foreign Key Problem

From: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
To: Dennis Muhlestein <dennis(at)zserve(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Foreign Key Problem
Date: 2001-06-07 22:35:51
Message-ID: Pine.BSF.4.21.0106071532080.22947-100000@megazone23.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thu, 7 Jun 2001, Dennis Muhlestein wrote:

> Is This s bug:
>
>
> create table A
> (
> key varchar(20) not null primary key
> );
>
> create table B
> (
> id serial not null primary key,
> col1 varchar(20) not null,
> col2 varchar(20) not null
> );
>
> alter table B create constraint fk_col1 foreign key ( col1 ) references A (
> key ) on delete cascade on update cascade;
>
> alter table B create constraint fk_col2 foreign key ( col2 ) references A (
> key ) on delete cascade on update cascade;
>
>
> SQL Creation and operation works fine. In the case that one row in table B
> where col1 = col2, if I update A.key, I'll get a referential integrity
> violation??
>
> ie: ERROR: fk_col1 referential integrity violation - key referenced from B
> not found in A.
>
> Is there a way to make this type of constraint work with the update?
>
> If not, is there a way to create a constraint so that col1 != col2 is
> inforced?

I believe this is a bug. I'm pretty sure that its an issue of the first
update seeing an invalid state. What I'm working on now may make this
work (I'm doing some work to the triggers now -- checking that the state
change hasn't been undone by some later change between time of action
and time of check).

I'm not sure of a work around in the meantime.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Dennis 2001-06-07 23:06:48 Re: Foreign Key Problem
Previous Message Arcady Genkin 2001-06-07 22:02:53 REPOST: redefining location of the socket file /tmp/.s.PGSQL.5432