Thread: RI Bug In Inherited Table

RI Bug In Inherited Table

From
"cn cn"
Date:
Hi!

Please try the following.

Regards,

CN
-------------
CREATE TABLE tt1 (
c1int primary key
)WITHOUT OIDS;

CREATE TABLE tt2 (
PRIMARY KEY (c1,c2),
c1int,
c2int
)INHERITS (tt1) WITHOUT OIDS;

CREATE TABLE tt3 (
CONSTRAINT fktt3c1 FOREIGN KEY (c1) REFERENCES tt1 (c1),
PRIMARY KEY (c1,c2),
c1int,
c2int,
c3int
)WITHOUT OIDS;

INSERT INTO tt2 VALUES(1,2);
INSERT INTO tt3 VALUES(1,2,3); --This statement produces fktt3c1 referential integrity violation
--
_______________________________________________
Get your free email from http://www.graffiti.net

Powered by Outblaze

Re: RI Bug In Inherited Table

From
Stephan Szabo
Date:
On Wed, 12 Mar 2003, cn cn wrote:

> CREATE TABLE tt1 (
> c1int primary key
> )WITHOUT OIDS;
>
> CREATE TABLE tt2 (
> PRIMARY KEY (c1,c2),
> c1int,
> c2int
> )INHERITS (tt1) WITHOUT OIDS;
>
> CREATE TABLE tt3 (
> CONSTRAINT fktt3c1 FOREIGN KEY (c1) REFERENCES tt1 (c1),
> PRIMARY KEY (c1,c2),
> c1int,
> c2int,
> c3int
> )WITHOUT OIDS;
>
> INSERT INTO tt2 VALUES(1,2);
> INSERT INTO tt3 VALUES(1,2,3); --This statement produces fktt3c1 referential integrity violation

Referential integrity only applies to the named table and not
any child tables.  Inheritance needs alot of work (for example,
you can have duplicated c1 values in the inherited tt1 tree because
the uniqueness constraint on tt1.c1 isn't inherited)