2013-07-06 28 views
0

第一部分:1個MySQL的外鍵引用我的問題的小學2

table1 
ID (PRIMARY) 

table2 
ID (PRIMARY) 

table3 
IDleglo (FOREIGN KEY) 

這裏是我的情況。我有來自不同表格的2個ID,它們是主鍵,自動遞增。在第三張表(table3)上,我將IDleglo作爲引用來自table1和table2的ID的外鍵。

問題,如果我變更表,使:

FOREIGN KEY (IDleglo) REFERENCES table1(ID) 
     ON UPDATE CASCADE 
     ON DELETE CASCADE 
FOREIGN KEY (IDleglo) REFERENCES table2(ID) 
     ON UPDATE CASCADE 
     ON DELETE CASCADE 

如何將數據庫知道這IDleglo值從ID(表1),並從ID(表2)。 原因我可以更新ID(table1),它會更新IDleglo ID = IDleglo,但它可能會影響IDleglo從ID(table2)獲得的值。我的問題的

第二部分是: 這是什麼意思,例如ADD CONSTRAINT FK_borrowed

回答

1

列只有一個值。如果您更改table1中的id,則更改將級聯到table3。如果新的id值尚未出現在table2中,則會因爲外鍵被違反而出現錯誤。

你問題的第二部分,你可以看到這裏的約束:http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html

+0

如果我更改了表1的ID的變化級聯到表3,爲什麼它應該不會影響表2的ID? – FosAvance

+0

第二個外鍵需要表3中的id出現在表2中。 – Joni