Thread: constrains problem...

constrains problem...

From
Jure Kodzoman
Date:
Hy list, i would like to ask you for help.


I have 3 tables. 


table1 has primary key 't1code' and table_rel  is 'many to many'
relation 
for table2. 


table2 primary key is 't2code'


table_rel has two fields: 't1code' and 't2code', where both of them 
together make a primary key for the relation table. This is done so no
double values exist.


What i would like to do is create a trigger or a constraint which would 
on delete of an entry from table1 also deleted all entries containing
code from 
table1 in table_rel. When i try to put a constraint via PgAdmin3 it says
it can't do 
it because 't1code' is not primary key or unique. 

I understand the error, but what i would like to know is how to delete 
all fields from table_rel containing the 'table1' vaule being equal to 
'code' being deleted from table1. 


Thanks a lot for your anwser! 


Yure 




Re: constrains problem...

From
Richard Huxton
Date:
Jure Kodzoman wrote:
> What i would like to do is create a trigger or a constraint which would 
> on delete of an entry from table1 also deleted all entries containing
> code from 
> table1 in table_rel. When i try to put a constraint via PgAdmin3 it says
> it can't do 
> it because 't1code' is not primary key or unique. 
> 
> I understand the error, but what i would like to know is how to delete 
> all fields from table_rel containing the 'table1' vaule being equal to 
> 'code' being deleted from table1. 

You put two foreign keys ON table_rel, referencing table1 and table2. 
Set both to delete on cascade and you're done.

--   Richard Huxton  Archonet Ltd