2009-03-17 24 views
7

Recientemente cambié un grupo de columnas a utf8_general_ci (la intercalación UTF-8 predeterminada) pero al intentar cambiar una columna en particular, recibí el error de MySQL:Error de MySQL: "Column 'columnname' no puede ser parte del índice FULLTEXT"

Column 'node_content' cannot be part of FULLTEXT index 

en mirando a través de documentos, parece que MySQL tiene un problema con índices FULLTEXT en algunos juegos de caracteres multi-byte como el UCS-2, sino que debe trabajar en UTF-8.

Estoy en la última versión estable de MySQL 5.0.x (5.0.77 creo).

Respuesta

26

Vaya, así que han encontrado la respuesta a mi problema:

Todas las columnas de un índice FULLTEXT deben tener no sólo establece el mismo carácter, sino también la misma intercalación .

Mi índice FULLTEXT tenía utf8_unicode_ci en una de sus columnas, y utf8_general_ci en sus otras columnas.

4

Solo para agregar al buen consejo de Thomas: Y para resolver las cosas en PHPMyAdmin, debe cambiar el conjunto de caracteres para todas las columnas AL MISMO TIEMPO.

Sólo perdí medio día intentando una y otra vez cambiar las columnas de a una por vez y recibiendo continuamente el mensaje de error sobre el índice FULLTEXT.

+0

Creo que sería una limitación de MySQL en lugar de phpMyAdmin uno - tendría que cambiarlos todos en el mismo comando ALTER porque no puede haber intercalaciones mixtas en un índice FULLTEXT, incluso si es solo para un "rato". – thomasrutter

Cuestiones relacionadas