【问题标题】:How can you create a foreign key to a table in another database with workbench?如何使用工作台为另一个数据库中的表创建外键?
【发布时间】:2013-08-16 13:19:02
【问题描述】:

在 MySQL 中,使用 MySQL Workbench,如何创建与驻留在另一个数据库中的表的外键关系?输入 DatabaseName.TableName.ColumnName 的“合格表名”后,工作台就像我在框中什么都没放一样。如果是不同的数据库,我是否只需要在工作台中手动查询来创建这些关系?

【问题讨论】:

  • 请向我们展示失败的CREATE TABLE 语句。
  • @RickJames 这篇文章来自 2013 年,所以我什至不确定那会是哪个版本的工作台!从那以后,我就毫无问题地使用了现代版本。这就是 stackoverflow 有时会遇到的问题——旧问题可能不再适用,但人们可以继续使用它们作为参考。嗯嗯。

标签: mysql foreign-keys workbench


【解决方案1】:

InnoDB 引擎允许您为表定义 FK(外键)。(甚至来自其他数据库)

为此,您必须在表和列名称之前提及数据库名称。像这样:

dbname.tablename.columnname

【讨论】:

  • +1 表示可以做到。但是请下次阅读这个问题。我说:DatabaseName.TableName.ColumnName 在我的问题中,我问的是工作台。
【解决方案2】:

我想我找到了解决方案。实际上,您必须在模型中添加另一个模式来代表您的“不同”数据库。

然后您需要将所有表(在 EER 图中)创建到这个新架构中。

最后,当您从原始表中单击 外键 选项卡时,您将能够从 Referenced Table 中的不同数据库中选择正确的表.例如 different.new_table

【讨论】:

  • 唯一的问题(我发现)是当您使用 drop 语句进行前向工程时,它会删除现有的参考架构并将其替换为“重新创建的”架构。感谢上帝的备份。
【解决方案3】:

我认为做你想做的事是不可能的。您不能链接来自不同数据库的表。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2019-06-19
  • 2022-01-22
  • 1970-01-01
  • 2020-03-15
  • 2013-03-27
  • 2016-08-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多