MySQL FULLTEXT索引问题

29 mysql sql mysql-error-1214

我正在尝试在表的属性上创建一个FULLTEXT索引.Mysql返回

错误1214:使用的表类型不支持FULLTEXT索引.

知道我做错了什么吗?

Cim*_*ity 55

您使用的是错误类型的表格.Mysql支持几种不同类型的表,但最常用的是MyISAM和InnoDB.MyISAM(在MySQL 5.6 +也是InnoDB表中)是Mysql支持全文索引的表类型.

要检查表的类型,请发出以下sql查询:

SHOW TABLE STATUS
Run Code Online (Sandbox Code Playgroud)

查看查询返回的结果,在"引擎"列中查找表和相应的值.如果此值是除MyISAM或InnoDB之外的任何值,那么如果您尝试添加FULLTEXT索引,Mysql将抛出错误.

要更正此问题,您可以使用下面的sql查询来更改引擎类型:

ALTER TABLE <table name> ENGINE = [MYISAM | INNODB]
Run Code Online (Sandbox Code Playgroud)

附加信息(认为它可能有用):Mysql使用不同的引擎存储类型来优化特定表所需的功能.示例MyISAM是操作系统的默认类型(除了窗口),可以快速执行SELECT和INSERT; 但不处理交易.InnoDB是windows的默认设置,可用于交易.但InnoDB确实需要更多的服务器磁盘空间.


Suk*_*ngh 10

直到MySQL 5.6,MyISAM是唯一支持全文搜索(FTS)的存储引擎,但是MySQL 5.6中的InnoDB FTS在语法上与MyISAM FTS完全相同.请阅读下面的详细信息.

MySQL 5.6中的InnoDB全文搜索


sou*_*rge 7

MySQL手册说,FULLTEXT指数只能在与mylsam引擎表来创建.

  • 这不再是事实。 (2认同)

Art*_*kii 5

你在使用InnoDB吗?支持FULLTEXT的唯一表类型是MyISAM.