From: | "msn" <vujadin(at)post(dot)tele(dot)dk> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Referential integrity implementation - bug or user error? |
Date: | 2002-03-10 22:19:34 |
Message-ID: | 20020310.231934.654887343.1425@post.tele.dk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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,
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?
Any help is greatly appreciated.
Thanks.
vujadin
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2002-03-11 01:33:43 | Re: Uniqueness of rule, constraint, and trigger names |
Previous Message | Paul | 2002-03-10 15:33:01 | Re: Line Numbering in SELRCT Output |