更新:我有一票到我的託管服務提供商(的FatCow),因爲他們能夠複製的問題。我會在這裏發表任何結論。phpMyAdmin拋出No Index Defined!即使索引和PK的存在
我有一個MySQL數據庫,像這樣:
table || pk
-----------
performers -> pID
genres -> gID
venues -> vID
我也有一個事件表看起來是這樣的:
eID (PK)
ePerformer (INDEX)
eGenre (INDEX)
eVenue (INDEX)
他們都是同一類型:INT(11)
。所有的表格都是InnoDB
。我想設置的關係,phpMyAdmin
使用的事件表的關係視圖,但是當我嘗試保存:
ePerformer: performers->pID ON DELETE RESTRICT, ON UPDATE RESTRICT
eGenre: genres->gID ON DELETE RESTRICT, ON UPDATE RESTRICT
etc...
我得到這個錯誤回到每個字段:No index defined!
我想也許我是做它倒退,所以我嘗試設置其他表中的每個關係,但我得到同樣的錯誤。
什麼給?
真是一個偉大的和詳細的解答。看起來你使用的是比我更新的phpMyAdmin版本。當我有機會時,我可以簡單地嘗試運行SQL命令。我不知道這是否會有所作爲,但數據庫表是從我的生產機器導入的。我使用.SQL擴展名導出/導入。如果MySQL服務器是不同的版本,這會導致意想不到的問題嗎?我只是想弄清楚爲什麼會發生這種情況。 此外,我確定不使用組合鍵,這是一個很好的事情,在你的答案中指出。 – armadadrive
我剛剛放棄了我的整個數據庫,認爲它可能是腐敗的。我使用上面演示的相同命令從phpMyAdmin重建它。當我進入關係視圖來設置更新和刪除的默認操作時,我可以看到外鍵被設置爲引用正確的主鍵。當我試圖添加RESTRICT作爲更新和刪除操作時,我得到了相同的原始錯誤!當我再次點擊關係視圖時,約束消失了。 – armadadrive