2016-04-26 50 views
0

我試圖找到這樣的查詢。在MySQL中可能嗎?有沒有辦法爲mysql列添加多個外鍵,但他們應該引用其他表中的一行?

ALTER TABLE `table1` 
ADD CONSTRAINT my_constraint_name 
FOREIGN KEY (some_id, some_other_id) REFERENCES `table2`(id, other_id); 

我的情況是,table1.some_id應該被稱爲table2.id凡應同時滿足table1.some_other_id是從同一行的表2,這是table2.other_id

+0

是的。你嘗試在MySQL嗎? –

+0

是的,我嘗試過。我得到這個錯誤 '#1005 - 無法創建表'test_db。#sql-415_186'(errno:150)(Details ...)' – anilCSE

回答

1

是的,這是可能在MySQL。

這應該工作得很好。

ALTER TABLE table1 
ADD CONSTRAINT table1_fk FOREIGN KEY (`column1`, `column2`) 
REFERENCES table2 (column1, column2); 
+1

...除非一個表中的column1與column1中的數據類型不同另一個,或者column2有同樣的問題。外鍵約束要求引用和引用的數據類型相同。 –

+0

@ Michael-sqlbot - 是的,當然。我把那一部分拿出來了。 – MontyPython

相關問題