无法将表类型更改为MyISAM

时间:2012-11-05 22:58:35

标签: mysql phpmyadmin

我正在尝试将表格的类型更改为MyISAM,但它不会让我:

ALTER TABLE `mytable` ENGINE = MYISAM
MySQL说:

  

文档1217 - 无法删除或更新父行:外键约束失败

2 个答案:

答案 0 :(得分:1)

MYISAM不支持外键

  

对于InnoDB以外的存储引擎,MySQL Server在CREATE TABLE语句中解析FOREIGN KEY语法,但不使用或存储它。

因此,您必须删除所有外键才能使用MYISAM。例如:

ALTER TABLE mytable DROP FOREIGN KEY key_name 

答案 1 :(得分:1)

将您的mysql升级到5.6.4或更高版本。

用5.6.4 mysql innodb有全文支持。

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

InnoDB Notes

  

MySQL现在支持InnoDB表的FULLTEXT索引。核心语法   与早期版本的FULLTEXT功能非常相似   CREATE TABLE和CREATE INDEX语句,以及MATCH()......   SELECT语句中的AGAINST()子句。新的@运营商允许   邻近搜索文档中彼此接近的术语。   详细的搜索处理由一组新的控制   配置选项: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。您可以监控InnoDB的工作方式   通过查询新的INFORMATION_SCHEMA表来查找全文搜索系统:   innodb_ft_default_stopword,innodb_ft_index_table,   innodb_ft_index_cache,innodb_ft_config,innodb_ft_deleted,和   innodb_ft_being_deleted。