当我尝试在我的数据库中包含要通过FULLTEXT更改的列时,出现错误#1283 - Column 'title' cannot be part of FULLTEXT index
。
ALTER TABLE users ADD FULLTEXT (`firstname`, `lastname`, `title`, `description`)
我不明白为什么会出现此错误或如何解决此问题。将不胜感激任何想法或提示。
答案 0 :(得分:4)
FULLTEXT
索引仅适用于MyISAM
表,而不适用于InnoDB
。您可以通过键入以下内容来检查您使用的存储空间:
SHOW CREATE TABLE users;
然后,您可以ALTER
使用此命令MyISAM
使用ALTER TABLE users ENGINE = MyISAM;
引擎:
{{1}}
答案 1 :(得分:3)
从Mysql 5.6开始,INNODB现在支持FULLTEXT INDEX。现在,当我将FULLTEXT添加到我的表中并遇到多个问题时,我也遇到了这个问题。
您需要确保将ibdata1文件设置为autoextend。 http://dev.mysql.com/doc/refman/5.0/en/innodb-data-log-reconfiguration.html
我的磁盘空间已用完。当mysql改变一个表时,mysql使用tmp数据和内存来执行此操作。您需要确保cnf文件中的tmp目录指向具有足够空间的目录。此外,由于它使用内存,它将使用您的虚拟内存。这意味着您的OS驱动器需要有足够的空间。如果这不是一个选项,请创建一个tmp复制tmp表并使用全文更改该表,然后右键INSERT INTO table
SELECT * FROM og_table
答案 2 :(得分:0)
如果您的表格是 InnoDB ,那么您就无法使用它。并且需要放弃它。
您还可以参考InnoDB @ http://dev.mysql.com/doc/refman/5.5/en/innodb-restrictions.html
的限制答案 3 :(得分:0)
自Mysql 5.6起,INNODB支持FULLTEXT INDEX
为避免错误“列*不能成为FULLTEXT索引的一部分” 检查列的TEXT INCODING;)它必须相同。