2012-11-09 37 views
1

當我試圖在我的數據庫中包含要通過FULLTEXT更改的列時,出現錯誤#1283 - Column 'title' cannot be part of FULLTEXT index將表格更改爲全文時發生MySQL錯誤

ALTER TABLE users ADD FULLTEXT (`firstname`, `lastname`, `title`, `description`) 

我不明白爲什麼這個錯誤顯示或如何解決這個問題。將不勝感激任何想法或提示。

+1

'title'列的數據類型是什麼? –

+0

數據類型是標題和說明的文本。名字和姓氏的Varchar @YogendraSingh – Octavius

+0

什麼是存儲引擎? – GregD

回答

3

FULLTEXT指標只適用於MyISAM表,而不是InnoDB。您可以檢查您所使用的存儲enging通過鍵入:

SHOW CREATE TABLE users; 

然後,你可以ALTER表使用此命令一起使用MyISAM引擎:

ALTER TABLE users ENGINE = MyISAM; 
+0

按照OP,它是MyISAM –

+0

對不起,沒有看到它。很高興你找到解決方案! – GregD

+3

從Mysql 5.6開始,INNODB現在支持FULLTEXT INDEX。現在我在將FULLTEXT添加到我的表中時遇到了這個問題,並遇到了多個問題。 – uptownhr

2

從MySQL 5.6開始,INNODB現在支持全文索引。現在我在將FULLTEXT添加到我的表中時遇到了這個問題,並遇到了多個問題。

  1. 您需要確保您的ibdata1文件設置爲autoextend。 http://dev.mysql.com/doc/refman/5.0/en/innodb-data-log-reconfiguration.html

  2. 我用完了磁盤空間。當mysql更改表時,mysql使用tmp數據和內存來執行此操作。您需要確保您的cnf文件中的tmp目錄指向具有足夠空間的目錄。另外,由於它使用內存,它將使用虛擬內存。意味着你的操作系統硬盤需要有足夠的空間。如果這不是一個選項,創建一個TMP重複TMP表,並改變該表的全文和權利的INSERT INTO table SELECT * FROM og_table

0

InnoDB支持全文索引從MySQL 5.6

爲了避免錯誤「列*不能成爲FULLTEXT索引的一部分」 檢查列的TEXT INCODING;)它必須是相同的。

相關問題