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

From msn
Subject Referential integrity implementation - bug or user error?
Date
Msg-id 20020310.231934.654887343.1425@post.tele.dk
Whole thread Raw
Responses Re: Referential integrity implementation - bug or user error?  (Stephan Szabo <sszabo@megazone23.bigpanda.com>)
List pgsql-sql
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,
foreignkey (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?

Any help is greatly appreciated.

Thanks.

vujadin


pgsql-sql by date:

Previous
From: Stephan Szabo
Date:
Subject: Re: subquery involving 'now'
Next
From: "adm"
Date:
Subject: Re: PL/pgsql