繁体   English   中英

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

[英]MySQL InnoDB foreign key between different databases

我想知道在MySQL InnoDB 中是否有可能有一个带有外键table来引用不同database另一个表?

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

我没有看到对https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html 的任何限制。

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

这是可能的:链接来做到这一点

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

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

下面是如何在表 t2 上添加外键,参考表 db1.historial(codh):

alter table t2
add foreign key FK_t2(micod2)
    references db1.historial(codh)
    on delete cascade
    on update cascade;
ALTER TABLE `tablename1`
ADD CONSTRAINT `tablename1_student_id_foreign` 
FOREIGN KEY (`tablename1`.`id`) 
REFERENCES `db2`.`tablename2`(`id`)
ON DELETE CASCADE ON UPDATE CASCADE;

如果我们在 db1 中有 table 调用答案,在 db2 中有 student 调用 ramiyusu_offline

我们必须输入如下

ALTER TABLE `answers`
ADD CONSTRAINT `answers_student_id_foreign` 
FOREIGN KEY (`id`)
REFERENCES `ramiyusu_offline`.`student`(`id`) 
ON DELETE CASCADE ON UPDATE CASCADE;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM