table1
ID (PRIMARY)
table2
ID (PRIMARY)
table3
IDpar(FOREIGN KEY)
Imam 2 ID-a iz 2 različite tabele(table1 i table2) i oni su primary key. U 3. tabeli (table3) imam IDpar koji je foreign key i referencira ID u table1 i table2.
Ako ja napravim ovo
FOREIGN KEY (IDpar) REFERENCES table1(ID)
ON UPDATE CASCADE
ON DELETE CASCADE
FOREIGN KEY (IDpar) REFERENCES table2(ID)
ON UPDATE CASCADE
ON DELETE CASCADE
Kako će baza znati koja vrijednost u stupcu IDpar(table3) dolazi iz ID(table1 i table2). Ti ID iz obje tabele su auto-increment i često će imati iste vrijednosti. I sada je situacija ovakva
ID(table1)
1
2
ID(table2)
1
2
IDpar(table3)
1 (ID table1)
1 (ID table2)
2 (ID table1)
2 (ID table2)
I sada ako ja napravim update ID(table1) i promijenim vrijednost iz 1 u 3, onda će mi se u table3 IDpar svugdje gdje je bio 1 prebaciti u 3?
A to se ne bi smjelo dogoditi jer jedna vrijednost dolazi iz table1 a jedan iz table2.