【发布时间】:2009-06-08 05:36:47
【问题描述】:
我正在尝试在表的属性上创建 FULLTEXT 索引。 mysql返回
错误 1214:使用的表类型不支持 FULLTEXT 索引。
知道我做错了什么吗?
【问题讨论】:
标签: mysql sql mysql-error-1214
我正在尝试在表的属性上创建 FULLTEXT 索引。 mysql返回
错误 1214:使用的表类型不支持 FULLTEXT 索引。
知道我做错了什么吗?
【问题讨论】:
标签: mysql sql mysql-error-1214
您使用了错误类型的表格。 Mysql 支持几种不同类型的表,但最常用的是 MyISAM 和 InnoDB。 MyISAM (in MySQL 5.6+also InnoDB tables) are the types of tables that Mysql supports for Full-text indexes.
要检查表的类型,请发出以下 sql 查询:
SHOW TABLE STATUS
查看查询返回的结果,在Engine列中找到你的表和对应的值。如果这个值是除 MyISAM 或 InnoDB 之外的任何值,那么如果您尝试添加 FULLTEXT 索引,Mysql 将抛出错误。
要纠正这个问题,您可以使用下面的 sql 查询来更改引擎类型:
ALTER TABLE <table name> ENGINE = [MYISAM | INNODB]
其他信息(认为它可能有用): Mysql 使用不同的引擎存储类型来优化特定表所需的功能。示例 MyISAM 是操作系统(除了 windows)的默认类型,可以快速执行 SELECT 和 INSERT;但不处理交易。 InnoDB 是 windows 的默认值,可用于事务。但是 InnoDB 确实需要更多的服务器磁盘空间。
【讨论】:
在 MySQL 5.6 之前,MyISAM 是唯一支持全文搜索 (FTS) 的存储引擎,但 MySQL 5.6 中的 InnoDB FTS 在语法上确实与 MyISAM FTS 相同。请阅读下文了解更多详情。
【讨论】:
在 MySQL mysql manual 表示 FULLTEXT 索引只能在使用 mylsam 引擎的表上创建。
【讨论】:
你在使用 InnoDB 吗?唯一支持 FULLTEXT 的表类型是 MyISAM。
【讨论】:
除了MyISAM表PARTITIONING也不支持full-text索引。
【讨论】: