我的桌子正在使用' InnoDB'存储引擎,当我尝试进行全文搜索'在它上面给我一个错误'使用过的表格不支持全文索引' 这就是为什么我试图改变我的桌面引擎来自' InnoDB'到了MyIsam'但它再次给了我错误' Cannont删除或更新表外键约束失败'。它链接到其他表格,我不想更改其中的表格和数据
我跑的时候
SHOW VARIABLES LIKE "%version%"
innodb_version 1.1.8
protocol_version 10
slave_type_conversions
version 5.5.24
version_comment MySQL Community Server (GPL)
version_compile_machine x86
version_compile_os Win64

这是我的sql版本和InnoDb版本请帮帮我。
答案 0 :(得分:0)
由于您不想更改数据,因此您唯一的办法是升级到MySQL 5.6,因为InnoDB支持该版本的FULLTEXT索引。
我已经提到在DBA StackExchange中使用InnoDB特定的FULLTEXT选项(Full text search results in a large amount of time spent in 'FULLTEXT initialization')
如需完整说明,please read the MySQL Documentation on it
您需要删除约束以使用
更改存储引擎ALTER TABLE yourtable ENGINE=MyISAM;
如果您有奴隶,请运行此
SET foreign_key_checks = 0;
SET unique_checks = 0;
STOP SLAVE;
ALTER TABLE childtable DROp CONSTRAINT ... ;
ALTER TABLE parenttable ENGINE=MyISAM;
ALTER TABLE childtable ENGINE=MyISAM;
ALTER TABLE ADD FULLTEXT ftindexname (columns);
START SLAVE;
这样,Master保留所有InnoDB,并且slave的表更改为MyISAM。
可以这样做是因为我在DBA StackExchange上写了一篇题为Can I have an InnoDB master and MyISAM slaves with Full-Text for searching?的文章,介绍了如何做到这一点。
执行此操作后,只需在Slave上执行FULLTEXT搜索。