# 1214 - Используемый тип таблицы не поддерживает индексы FULLTEXT
Я получаю сообщение о том, что тип таблицы не поддерживает индексы 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)
) ;
*
Ответы
Ответ 1
До MySQL 5.6 Полнотекстовый поиск поддерживается только с помощью 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.
Ответ 2
Проблема возникла из-за неправильного типа таблицы. 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;
Ответ 3
Только MyISAM позволяет 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)
) ENGINE=MyISAM;
Ответ 4
Просто сделайте следующее:
-
Откройте файл .sql с помощью Блокнота или Блокнота ++
-
Найдите InnoDB и замените все (около 87) на MyISAM
-
Сохраните, и теперь вы можете импортировать базу данных без ошибок.
Ответ 5
************* Разрешено - # 1214 - Используемый тип таблицы не поддерживает индексы FULLTEXT ***************
Его очень просто решить эту проблему. Люди отвечают здесь очень трудными словами, которые нелегко понять людям, которые не являются техническими.
Итак, я упоминаю здесь, шаги в простых словах помогут решить вашу проблему.
1.) Откройте файл .sql с помощью Блокнота, щелкнув правой кнопкой мыши по файлу > Изменить или Просто откройте файл "Блокнот" и перетащите файл в блокнот, и файл будет открыт. (Примечание: Пожалуйста, не изменяйте расширение .sql файла как его все еще свою базу данных sql. Также сохраните копию своего файла sql, чтобы спасти себя от любого нежелательного события)
2.) Нажмите "Меню" Блокнот "Редактирование" > "Заменить" (окно "Окно" откроет "Найти то, что и заменит полями" )
3.) В поле "Найти какое поле" введите ДВИГАТЕЛЬ = InnoDB и "Заменить с полем" Введите ДВИГАТЕЛЬ = MyISAM
4.) Теперь нажмите кнопку Заменить все
5.) Нажмите CTRL + S или Файл > Сохранить
6.) Теперь загрузите этот файл, и я уверен, что ваша проблема будет решена....