首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手动选择外键列mysql工作台

问手动选择外键列mysql工作台
EN

Stack Overflow用户
提问于 2013-01-24 20:50:42
回答 2查看 6.4K关注 0票数 1

假设我在一个MyISAM数据库中有一堆MySQL表。我知道,如果我的表是InnoDB,MySQL工作台将自动获取表之间的关系。但是,如果我的表是MyISAM,那么是否可以选择在MySQL工作台中使用哪一列作为外键,而无需MySQL工作台在表模式中添加列?例如,假设我在一个名为users的表中有这些列

代码语言:javascript
复制
id              PRIMARY KEY
username        VARCHAR (255)
password        VARCHAR (255)
email           VARCHAR (255)
user_type_id    INT

正如您在上面看到的,user_type_id将是来自名为user_types的表的外键。如果我在users工作台中的表MySQL和user_types之间添加了多对一的关系,那么将自动将列user_types_id添加到表users的架构中(因为MySQL Workbench通常将其视为外键)。我不希望这种情况发生,我希望能够告诉MySQL工作台使用列user_type_id作为我的外键。我有办法做到吗?

谢谢

注意:当我双击MySQL Workbench中的模型视图上的表时,有一个Foreign选项卡,但是当我这样做时,我得到了以下文本:

注意:只能为某些存储引擎(如InnoDB)定义外键。服务器接受其他存储引擎的外键定义,但默认忽略它们。将表引擎切换到支持外键的引擎,以便在这里进行调整。

EN

回答 2

Stack Overflow用户

发布于 2013-01-25 08:27:26

您可以暂时切换到InnoDB,定义关系,然后切换回MyISAM。这种关系将继续存在。但是,除了记录你的意图之外,它们没有什么真正的用处。

如果这就是你想要的,那就去吧。

顺便说一句: FK选项卡页只能在Windows上不可用(对于不支持FKs的引擎),因为我们已经看到许多用户抱怨为MyISAM定义FKs,只是为了在他们的目标DB中看不到效果。在Linux + OS上,您可以使用FKs,而不管所选的存储引擎是什么。

票数 2
EN

Stack Overflow用户

发布于 2013-01-24 20:55:50

如果我正确地理解了您的问题,我相信您可以从表本身的Foreign选项卡中做到这一点。如果双击模型概述中的表,则在底部选项卡上有一个外键选项卡。您可以手动添加外键,但要从该对话框中进行选择。这有意义吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14510494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档