回答
MyISAM根本不支持外鍵。從manual:
對於比其他的InnoDB存儲引擎,MySQL服務器解析國外 KEY語法在CREATE TABLE語句,但不使用或存放它。 ...在稍後的階段,外鍵約束將實現 MyISAM表。
這是MySQL 5.6的下一個版本,所以它還沒有實現。文本與舊版本完全相同。
這意味着根本不使用外鍵構造。您可以在您的CREATE TABLE
命令中指定它,但MySQL會默默忽略它。沒有索引將被製作出來,並且它不會被存儲(所以SHOW CREATE TABLE
命令將而不是表明您嘗試創建一個外鍵)。
如果您需要外鍵支持,請考慮使用InnoDB存儲引擎。 InnoDB爲外鍵自動創建索引。
所以實際上回答這個問題:如果你想要一個索引,在列上創建一個單獨的索引。 – Konerak
MyISAM引擎不支持外鍵,只有InnoDB引擎:
http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html
InnoDB的需要外鍵索引和參考鍵,以便 外鍵檢查可以快速且不需要表掃描。在 引用表中,必須有一個索引,其中外鍵 列作爲第一列以相同順序列出。如果它不存在 ,則會在引用表上自動創建這樣一個 索引。如果您創建 另一個可用於強制執行外鍵約束的索引,則此索引可能稍後會自動丟棄。 index_name,如果給出,則按前面所述使用。
- 1. 主鍵是否自動成爲索引?
- 2. MySQL忘記了爲外鍵自動創建索引?
- 3. MySQL Workbench會自動爲外鍵創建索引嗎?
- 4. 爲什麼索引是自動創建到外鍵字段?
- 5. 創建已建立索引的列外鍵與MySQL工作臺
- 6. MySql外鍵索引
- 7. 主鍵是否自動索引?
- 8. 外鍵是否在SQL Server中自動索引?
- 9. MySQL不能建立外鍵
- 10. 請問Sqlalchemy會自動爲外鍵創建索引嗎?
- 11. 外鍵在mySQL中必須是索引?
- 12. MySQL索引建立性能
- 13. 在MySQL上建立索引
- 14. 創建外鍵是否意味着創建索引?
- 15. liquibase - 爲postgresql外鍵創建索引
- 16. Oracle是否自動爲FOREIGN KEY列創建二級索引?
- 17. MySQL:爲外鍵命名是否重要?
- 18. Solr爲Sitecore建立索引
- 19. 外鍵是否總是引用主鍵?
- 20. 是否指定一個外鍵使其成爲索引?
- 21. 索引外鍵
- 22. Django會自動爲外鍵列生成索引嗎?
- 23. 爲MySQL InnoDB聚集索引使用組合主鍵是否好?
- 24. mysql 5.0的索引是否爲空值?
- 25. mysql的索引是否爲空值?
- 26. 主鍵索引自動
- 27. HBase Table的行鍵是否自動索引?
- 28. 建立在MySQL表的索引
- 29. MySQL是否在創建新索引時使用現有索引?
- 30. 在主鍵+外鍵上創建多重索引是否有性能優勢?
MyISAM不支持外鍵約束。 – eggyal