Mysql,InnoDB到MyISAM的全文索引

时间:2013-02-11 16:51:43

标签: mysql innodb myisam fulltext-index

实际上,我想切换表格的引擎。在InnoDB中,我想将它们设置为MyISAM,因为这个

ALTER TABLE `xxx_db`.`yyy` ADD FULLTEXT `ft_modele` (
    `anno_modele`
)

错误:     文档     #1214 - 使用的表类型不支持FULLTEXT索引

所以...我这样做:

ALTER TABLE `annonce` ENGINE = MYISAM 

但我也有错误:

#1217 - Cannot delete or update a parent row: a foreign key constraint fails 

我理解错误......但我真的不想杀死所有引用索引,并重新创建它们。太久了。

有人有想法将innoDB转换为MyISAM吗?我读到MySQL 5.6.4支持全文...不幸的是我有5.5.28而且我在Plesk 11.我担心如果我升级,我的服务器崩溃了。

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

全文索引或外键约束(MyISAM不支持那些)你只能选择一个(直到MySQL 5.6)。

无论如何,更改数据库引擎将导致总表重写(创建新表,移动数据,丢弃旧表)。

如果我是你,我会去升级。

答案 1 :(得分:2)

不幸的是,你不能在MySQL 5.5中拥有一个支持外键约束和全文索引的表。正如您已经注意到的,MySQL 5.6具有support fulltext indexes for InnoDB

如果可能,我建议更新MySQL。 MySQL 5.6很稳定。

或者使用外部全文索引,例如SphinxLucene

答案 2 :(得分:0)

不幸的是,对我来说没有好的选择。虽然没有使用新版本的mysql升级plesk,但我无法升级服务器而不会造成不稳定。

所以,我只是mysqldump我的数据库并编辑表和键。

坦克的帮助。祝你有愉快的一天