#1214 - 使用的表类型不支持FULLTEXT索引

时间:2014-01-07 05:02:57

标签: mysql

我收到错误消息,表示表类型不支持FULLTEXT索引。我怎样才能做到这一点?

这是我的表:

CREATE TABLE gamemech_chat (
  id bigint(20) unsigned NOT NULL auto_increment,
  from_userid varchar(50) NOT NULL default '0',
  to_userid varchar(50) NOT NULL default '0',
  text text NOT NULL,
  systemtext text NOT NULL,
  timestamp datetime NOT NULL default '0000-00-00 00:00:00',
  chatroom bigint(20) NOT NULL default '0',
  PRIMARY KEY  (id),
  KEY from_userid (from_userid),
  FULLTEXT KEY from_userid_2 (from_userid),
  KEY chatroom (chatroom),
  KEY timestamp (timestamp)
)  ;

*

6 个答案:

答案 0 :(得分:93)

在MySQL之前使用MyISAM Engine支持 全文搜索。

因此,要么将表的引擎更改为MyISAM

CREATE TABLE gamemech_chat (
  id bigint(20) unsigned NOT NULL auto_increment,
  from_userid varchar(50) NOT NULL default '0',
  to_userid varchar(50) NOT NULL default '0',
  text text NOT NULL,
  systemtext text NOT NULL,
  timestamp datetime NOT NULL default '0000-00-00 00:00:00',
  chatroom bigint(20) NOT NULL default '0',
  PRIMARY KEY  (id),
  KEY from_userid (from_userid),
  FULLTEXT KEY from_userid_2 (from_userid),
  KEY chatroom (chatroom),
  KEY timestamp (timestamp)
) ENGINE=MyISAM;

这是 SQLFiddle 演示

或升级到5.6并使用InnoDB全文搜索。

答案 1 :(得分:16)

由于表类型错误而导致问题.MyISAM是Mysql支持全文索引的唯一表格类型。

要在sql之后运行,请更正此错误。

 CREATE TABLE gamemech_chat (
  id bigint(20) unsigned NOT NULL auto_increment,
  from_userid varchar(50) NOT NULL default '0',
  to_userid varchar(50) NOT NULL default '0',
  text text NOT NULL,
  systemtext text NOT NULL,
  timestamp datetime NOT NULL default '0000-00-00 00:00:00',
  chatroom bigint(20) NOT NULL default '0',
  PRIMARY KEY  (id),
  KEY from_userid (from_userid),
  FULLTEXT KEY from_userid_2 (from_userid),
  KEY chatroom (chatroom),
  KEY timestamp (timestamp)
) ENGINE=MyISAM;

答案 2 :(得分:8)

只有MyISAM允许FULLTEXT,如here所示。

试试这个:

CREATE TABLE gamemech_chat (
  id bigint(20) unsigned NOT NULL auto_increment,
  from_userid varchar(50) NOT NULL default '0',
  to_userid varchar(50) NOT NULL default '0',
  text text NOT NULL,
  systemtext text NOT NULL,
  timestamp datetime NOT NULL default '0000-00-00 00:00:00',
  chatroom bigint(20) NOT NULL default '0',
  PRIMARY KEY  (id),
  KEY from_userid (from_userid),
  FULLTEXT KEY from_userid_2 (from_userid),
  KEY chatroom (chatroom),
  KEY timestamp (timestamp)
) ENGINE=MyISAM;

答案 3 :(得分:0)

根据官方参考

  

全文索引只能与MyISAM表一起使用。 (在MySQL 5.6及更高版本中,它们也可以与InnoDB表一起使用。)只能为CHAR,VARCHAR或TEXT列创建全文索引。

https://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html

带有MySQL 5.5的InnoDB不支持全文索引。

答案 4 :(得分:-1)

只需执行以下操作:

  1. 使用记事本或记事本++打开.sql文件

  2. 查找InnoDB并将所有(大约87个)替换为MyISAM

  3. 保存,现在您可以正确导入数据库了。

答案 5 :(得分:-5)

*************已解决 - #1214 - 使用的表格类型不支持FULLTEXT索引***************

解决此问题非常简单。人们用非常困难的话回答这里,而非技术人员不易理解。

所以我在这里提到一些非常简单的单词会解决你的问题。

1。)右键单击文件>编辑或打开记事本文件,然后将文件拖放到记事本上,打开文件,用记事本打开.sql文件。 (注意:请不要将文件的扩展名.sql更改为仍然是您的sql数据库。还要保留sql文件的副本,以避免任何错误发生)

2.单击记事本菜单编辑>替换(一个窗口将弹出我们的查找内容和替换字段)

3。)在查找内容字段中输入 ENGINE = InnoDB &在替换为字段中输入 ENGINE = MyISAM

4。)现在点击全部替换按钮

5.点击 CTRL + S 文件>保存

6。)现在上传此文件,我确定您的问题将得到解决....