2015-02-23 112 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

我相信您試圖通過外鍵訪問的密鑰需要成爲另一個表中的主鍵。