2012-11-05 49 views
3

我想表的類型更改爲MyISAM數據,但它不會讓我:不能表型改變的MyISAM

ALTER TABLE `mytable` ENGINE = MYISAM 

MySQL表示:

文檔1217 - 無法刪除或更新父行,外鍵約束失敗

回答

1

MyISAM不支持外鍵

對於InnoDB以外的存儲引擎,MySQL Server會分析CREATE TABLE語句中的FOREIGN KEY語法,但不會使用或存儲它。

因此,您必須刪除所有外鍵才能使用MYISAM。例如:

ALTER TABLE mytable DROP FOREIGN KEY key_name 
+1

哦,什麼?是否有支持兩者的表格類型?我有一個帶有外鍵的表,但是我需要在其中的一列上執行FULLTEXT。 – user1701467

1

將您的mysql升級到5.6.4或更高版本。

with 5.6.4 mysql innodb提供全文支持。

http://dev.mysql.com/doc/refman/5.6/en/news-5-6-4.html

InnoDB的注意事項

的MySQL現在支持InnoDB表的FULLTEXT索引。核心語法 與早期版本中的FULLTEXT功能非常相似,其中 CREATE TABLE和CREATE INDEX語句以及SELECT語句中的AGAINST()子句中的MATCH()... 。新的@運算符允許 近似搜索文檔中彼此靠近的術語。 innodb_ft_enable_stopword, innodb_ft_server_stopword_table,innodb_ft_user_stopword_table, innodb_ft_cache_size,innodb_ft_min_token_size和 innodb_ft_max_token_size: 詳細的搜索處理是由一組新的 配置選項來控制。您可以通過查詢新的INFORMATION_SCHEMA表監視InnoDB的 全文檢索系統的工作: innodb_ft_default_stopword,innodb_ft_index_table, innodb_ft_index_cache,innodb_ft_config,innodb_ft_deleted和 innodb_ft_being_deleted。

+0

嗯。它會支持外鍵,然後在同一張表上同時支持嗎? – user1701467