2014-01-07 16 views
55

テーブルタイプがFULLTEXTインデックスをサポートしていないとエラーが表示されます。どうすればこれを達成できますか?#1214 - 使用しているテーブルタイプが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) 
) ; 

*

答えて

76

のMySQL 5.6のフルテキスト検索がサポートされている前のみの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デモ

でのMyISAMにあなたのテーブルのためのエンジンを変更するか、または5.6にアップグレードすると、InnoDBのフルテキスト検索を使用しますか。

+0

作業中 –

+0

[5.6 InnoDBの全文検索に関する情報](http://dev.mysql.com/doc/refman/5.6/en/innodb-fulltext-index.html) – Matmarbon

+1

私の '' 'Mysql --version'''が最新のインストールを正しく示していたとしても、古いMysqlサービスを実行していたことが判明しました。私はまず古いMysqlサービスを停止してアンインストールする必要がありました:http://superuser.com/a/452264/74576、 '' 'C:\ wamp \ bin \ mysql \ mysql5.6.17 \ bin> mysqld --install' "、" Windowsのスタートメニュー>検索>サービス> MySQLの>開始 – Ryan

6

hereのように、MyISAMのみがFULLTEXTを許可します。

このお試しください:問題は、間違ったテーブルtype.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; 
15

は、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; 
-5

*************解決 - #1214 - 使用されるテーブルタイプがFULLTEXTインデックスをサポートしていません***************

非常に簡単にこの問題を解決してください。人々は技術的でない人々によって容易に理解できない非常に難しい言葉でここに答えています。

ここでは非常に簡単な言葉で手順を説明して問題を解決します。

1.メモ帳でファイル>編集を右クリックして.sqlファイルを開くか、またはメモ帳ファイルを開き、ファイルをメモ帳にドラッグアンドドロップするだけで、ファイルが開きます。 (注意:ファイルの拡張子.sqlをそのままあなたのsqlデータベースとして変更しないでください。また、SQLファイルのコピーを保存しておいてください。

)2.メモ帳をクリックします。メニュー編集> (ウィンドウのフィールドを持つ置き換え&を探しますで私たちをポップになります)

3を交換してください)には、フィールドがENGINEを入力探します= InnoDBの &でENGINE = MyISAMテーブル

4を入力フィールドに交換してください。 )今すぐクリックすべてを交換するボタン

5)

6)は今このファイルをアップロードし、私はあなたの問題が解決されると確信して保存>CTRL + Sまたはファイルをクリックしてください....

+0

これは別の方法であり、解決策ではありません – Machado

+0

外来キーが気に入らないのですか? – ilpelle

+0

これは解決策ではありませんが、これはうまくいかないでしょう – Shin

関連する問題