Re: Referential integrity implementation - bug or user error? - Mailing list pgsql-sql

From missive@frontiernet.net (Lee Harr)
Subject Re: Referential integrity implementation - bug or user error?
Date
Msg-id slrna8qlmb.4k.missive@whave.frontiernet.net
Whole thread Raw
In response to Referential integrity implementation - bug or user error?  ("msn" <vujadin@post.tele.dk>)
List pgsql-sql
On Sun, 10 Mar 2002 23:19:34 +0100, msn <vujadin@post.tele.dk> wrote:
> Hi,
> 
> Postgres fails to set null values when referenced key is deleted.
> 
> I think I will try to explain with this simple example which
> I have tested on my linux box (rhat7.2) running postgres-v7.2.
> 
> I have two tables as follows
> 
> create table t1 (
>         id integer not null primary key
> );
> 
> create table t2 (
>         id integer not null primary key,
>         t1_aid integer,
>         t1_bid integer,
>         foreign key (t1_aid)
>                 references t1 (id)
>                 on delete set null
>                 on update cascade,
>         foreign key (t1_bid)
>                 references t1 (id)
>                 on delete set null
>                 on update cascade
> );
> 
> ... and then I add some values as in
> 
> msn=# insert into t1 values (1);
> INSERT 16904 1
> msn=# insert into t1 values (2);
> INSERT 16905 1
> msn=# insert into t2 values (1, 1, 1);
> INSERT 16906 1
> msn=# insert into t2 values (2, 2, 2);
> INSERT 16907 1
> msn=# insert into t2 values (3, 1, 2);
> INSERT 16908 1
> 
> But then when I try to delete one id from t1 I get this error message.
> 
> msn=# delete from t1 where id=1;
> ERROR:  <unnamed> referential integrity violation - key referenced from t2
> not found in t1
> 
> Why this fails to set columns t1_aid and t1_bid in table t2 to null?
> 


I guess it fails because the key it tries to use in t2 (NULL) is not
in t1 (the only keys there are 1 and 2).

You could insert a NULL key in to t1, then it might work...
Though I am not so sure that makes sense.



pgsql-sql by date:

Previous
From: Hubert Palme
Date:
Subject: Line Numbering in SELRCT Output
Next
From: "PG Explorer"
Date:
Subject: Re: Casting