2016-04-26 30 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

相关问题