我收到错误消息,表示表类型不支持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)
) ;
*
答案 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)
只需执行以下操作:
使用记事本或记事本++打开.sql文件
查找InnoDB并将所有(大约87个)替换为MyISAM
保存,现在您可以正确导入数据库了。
答案 5 :(得分:-5)
*************已解决 - #1214 - 使用的表格类型不支持FULLTEXT索引***************
解决此问题非常简单。人们用非常困难的话回答这里,而非技术人员不易理解。
所以我在这里提到一些非常简单的单词会解决你的问题。
1。)右键单击文件>编辑或打开记事本文件,然后将文件拖放到记事本上,打开文件,用记事本打开.sql文件。 (注意:请不要将文件的扩展名.sql更改为仍然是您的sql数据库。还要保留sql文件的副本,以避免任何错误发生)
2.单击记事本菜单编辑>替换(一个窗口将弹出我们的查找内容和替换字段)
3。)在查找内容字段中输入 ENGINE = InnoDB &在替换为字段中输入 ENGINE = MyISAM
4。)现在点击全部替换按钮
5.点击 CTRL + S 或文件>保存
6。)现在上传此文件,我确定您的问题将得到解决....