From: | "Mans" <mananvyas(at)gmail(dot)com> |
---|---|
To: | pgsql-admin(at)postgresql(dot)org |
Subject: | Circular Dependency in Tables and Deletion of Data |
Date: | 2006-07-24 12:53:52 |
Message-ID: | 1153745632.239636.120300@h48g2000cwc.googlegroups.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
Hello,
Note: I know that its not a very good db design. But what if a senario
comes in front of you?
I have created an uncommon database design. Which is as follows:
Created 2 Tables :- Emp1 and Emp2
TableA with 2 Attributes
A1 and A2.
A1 is the primary key.
TableB with 2 Attributes
B1 and B22.
B1 is primary key
B2 is refereing to Emp1.Pr1
Now I have altered table for addeing one more foreign key constraint.
The constraint is on TableA.A2 refering to TableB.B1
This creates the circular dependency.
Now I have add one record in each table then "Will it allow me to
delete without schema change??"If yes then how?
I can not delete the tables also??
Is this a useless functionality given in DB or where is this used?
Can postgres detect it automatically and restrict it to do so?
Is any other DB restricts this kind of functionality or not?
Sample code is given below for trial purpose....
create table TableA (
A1 integer primary key,
A2 integer
);
create table TableB (
B1 integer primary key,
B2 integer references TableA(A1)
);
ALTER TABLE TableA ADD CONSTRAINT distfk FOREIGN KEY (A2) REFERENCES
TableB(B1) MATCH FULL;
Insert INTO TableA values (1,null);
Insert INTO TableB values (100,1);
Update TableA SET A2 = 100 WHERE A1 = 1;
Delete FROM TableA;
Isnt it a crazy thing??
Regards,
Mans
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2006-07-24 13:08:36 | Re: Circular Dependency in Tables and Deletion of Data |
Previous Message | Michael Fuhr | 2006-07-24 01:00:08 | Re: DBA tasks |