2010-10-11 67 views
51

之間的外鍵,我想知道是否有可能用在InnoDB中MySQLtable外鍵引用不同database另一個表?MySQL的InnoDB的不同數據庫

如果是這樣,這可以怎麼做?

回答

46

我沒有看到任何http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html限制。

因此,只需使用otherdb.othertable,你會很好。

+0

雖然... MariaDraw 10.0.30無法正常工作... – Code4R7 2017-07-13 09:58:54

+1

@ Code4R7請確保表格使用相同的引擎,例如[documentation](https://mariadb.com/kb/en/library/foreign) -key /):「_父表和子表必須使用相同的存儲引擎[...]」更改表引擎, 'ALTER TABLE my_table ENGINE = InnoDB;' 工作於MariaDB 10.1.16 。 – iloo 2017-12-20 09:20:51

14

這是可能的:Link to do it

例(表1是在數據庫1和HelloTable是DATABASE2):

ALTER TABLE Table1 
ADD foreign key FK_table1(ColumnNameFromTable1) 
REFERENCES db2.HelloTable(ColumnNameFromHelloTable) 
+11

+1必須補充一點,如果除了鏈接,有你總結的內容在這裏的答案中的鏈接,會更有幫助! – InSane 2010-10-11 09:41:31

+3

-1鏈接不夠,答案應該包含更多信息(解釋或示例)。 – automatix 2014-05-19 11:38:36

3

下面是如何增加對錶T2,從表db1.historial引用(CODH)的外鍵:

alter table t2 
add foreign key FK_t2(micod2) 
    references db1.historial(codh) 
    on delete cascade 
    on update cascade; 
相關問題