首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法创建MySQL外键(索引问题?)

问无法创建MySQL外键(索引问题?)
EN

Stack Overflow用户
提问于 2015-02-23 18:52:19
回答 3查看 17.8K关注 0票数 5

我有个小问题做一些外键..。

当我试图在MySQL工作台中定义外键时,我得到以下消息:

所选列“playerName”必须进行索引,并且必须具有要创建的外键的兼容类型。

在这里,我的问题开始了:我非常肯定,列(towns.playerName) 是索引的,并且肯定是相同类型的( VARCHAR(255) ).

“城镇”指标

我想将外键从players.name (primary key, not null, unique)添加到towns.playersName(not null)。

那么我能做些什么来创建外键呢?

我好像做错了什么..。

对不起,如果已经有问题要问了.

编辑:我刚刚又试了一次(和以前几次一样),现在它起作用了.真奇怪

也许是MySQL工作台中的一个bug??

EN

回答 3

Stack Overflow用户

发布于 2019-11-22 12:54:22

我曾多次遇到同样的问题,但最终发现了一个有趣而有用的概念,我在学习mysql时忽略了这个概念。如果列不是表1中的“键”,则不能将其作为外键添加,除非它应该有索引。因此,我将该列作为索引列。

例如:

代码语言:javascript
复制
CREATE INDEX any_name ON table1 (column1);

最后,我解决了我的问题。

票数 4
EN

Stack Overflow用户

发布于 2015-02-23 19:00:16

我认为您试图通过外键访问的密钥需要是另一个表中的主键。

票数 0
EN

Stack Overflow用户

发布于 2018-12-18 10:33:33

我收到了类似的错误信息。我在两个表中检查了列的类型。在一个表中是int,而另一个表中是varchar。两者都应该是相同的类型。在这两个表中使用相同的类型时,它工作得很好。

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

https://stackoverflow.com/questions/28681177

复制
相关文章

相似问题

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