MySQL InnoDB是不同数据库之间的外键

Ala*_*laa 61 mysql database innodb foreign-keys

我想知道,如果它是用在InnoDB中可能MySQL有一个table外键引用在不同的另一个表database

如果是这样,如何做到这一点?

Bar*_*ter 58

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

所以只需使用otherdb.othertable就可以了.

  • @Code4R7 确保表使用相同的引擎,如[文档](https://mariadb.com/kb/en/library/foreign-keys/):“_父表和子表必须使用相同的存储engine[...]"_ 要更改表的引擎,`ALTER TABLE my_table ENGINE = InnoDB;` 适用于 MariaDB 10.1.16。 (4认同)

Spi*_*rix 22

这是可能的: 链接去做

示例(Table1在database1中,HelloTable在database2中):

ALTER TABLE Table1 
ADD foreign key FK_table1(ColumnNameFromTable1)
REFERENCES db2.HelloTable(ColumnNameFromHelloTable)
Run Code Online (Sandbox Code Playgroud)

  • +1必须添加如果除了链接之外,如果你在这里总结了答案中链接的内容,那会更有帮助! (13认同)
  • -1链接不够,答案应包含更多信息(解释或示例). (3认同)

小智 5

下面是如何在表db1.historial(codh)上进行引用的表t2上添加外键:

alter table t2
add foreign key FK_t2(micod2)
    references db1.historial(codh)
    on delete cascade
    on update cascade;
Run Code Online (Sandbox Code Playgroud)