Re: referential integrity error

From: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
To: Matej Hollý <h(dot)matej(at)krs(dot)sk>
Cc: <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: referential integrity error
Date: 2002-06-11 17:51:07
Message-ID: 20020611104857.J80282-100000@megazone23.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Tue, 11 Jun 2002, [ISO-8859-1] Matej Holl wrote:

> /*
> If a table contains two or more foreign keys referencing the same
> table and they reference the same record in the other table, the
> record's primary key cannot be changed even if the keys have the
> "ON UPDATE CASCADE" clause (see example below). It will say that
> "referential integrity error - key referenced from `table' not found
> in `table'".
> */

>
> CREATE TABLE "Bug1" (
> "ID" INT4,
> "Description" TEXT NOT NULL,
> PRIMARY KEY("ID")
> );
> CREATE TABLE "Bug2" (
> "ID" INT4,
> "Source" INT4 NOT NULL
> REFERENCES "Bug1" ON UPDATE CASCADE ON DELETE NO ACTION,
> "Destination" INT4 NOT NULL
> REFERENCES "Bug1" ON UPDATE CASCADE ON DELETE NO ACTION,
> "Description" TEXT NOT NULL,
> PRIMARY KEY ("ID")
> );
> INSERT INTO "Bug1" VALUES (1,'Place');
> INSERT INTO "Bug2" VALUES (10,1,1,'Move from Place to Place');
> UPDATE "Bug1" SET "ID"=2 WHERE "ID"=1;

This works in current sources. There's a patch floating around which
needs a little work but can be used as a basis to patch earlier versions
into working for this case (see archives).

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Stephan Szabo 2002-06-11 17:54:27 Re: Referential integrity problem postgresql 7.2 ?
Previous Message Billy O'Connor 2002-06-11 17:41:40 Re: Referential integrity problem postgresql 7.2 ?