2015-02-23 62 views
1

我有一个小问题,做一些外键...
当我尝试定义外键在MySQL Workbench中,我得到以下信息:MySQL的外键不能创建(索引的问题?)

选定的列'playerName'必须建立索引并且是要创建的外键的兼容类型。

有我的问题开始:我敢肯定,该列(towns.playerName)索引,这是同类型的明确(VARCHAR(255))...
Indexes of 'towns'
我想添加一个从players.name (primary key, not null, unique)towns.playersName(not null)的外键。
那么我能做些什么来获得创建的外键?
看来我做错了什么......

PS:我很抱歉,如果已经存在这个问题...

编辑:我刚刚又试了一次(和我一模一样的前几次),现在它工作...真的很奇怪
也许在MySQL工作台中的错误?

+0

'towns.playersName'也必须有一个索引。较新的mysql版本会自动创建必要的索引,但在较早的版本中,您必须自己编制字段 - 使用的外键。 – 2015-02-23 18:57:23

+0

'towns.playerName' **是**索引...也许不完全清楚;编辑问题 – alekos93 2015-02-23 19:17:56

+0

尝试以相反的方式创建外键。约束/外键必须位于没有唯一索引的表上。查看这篇文章的例子。 http://stackoverflow.com/questions/18383182/mysql-table-with-a-varchar-column-as-foreign-key另外,它可能是有用的,如果你发布更多的SQL。 – jornare 2015-02-23 19:27:11

回答

0

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