2009-03-17 7 views
7

Récemment, j'ai changé un groupe de colonnes en utf8_general_ci (le classement UTF-8 par défaut) mais en essayant de changer une colonne particulière, j'ai reçu l'erreur MySQL:Erreur MySQL: "Column 'columnname' ne peut pas faire partie de l'index FULLTEXT"

Column 'node_content' cannot be part of FULLTEXT index 

En regardant à travers des documents, il semble que MySQL a un problème avec les index FULLTEXT sur certains jeux de caractères multi-octets tels que UCS-2, mais qu'il devrait fonctionner sur UTF-8.

Je suis sur la dernière version stable de MySQL 5.0.x (5.0.77 je crois).

Répondre

26

Oops, j'ai donc trouvé la réponse à mon problème:

Toutes les colonnes d'un index FULLTEXT doivent non seulement avoir le même jeu de caractères, mais aussi le même collation.

Mon index FULLTEXT contenait utf8_unicode_ci sur l'une de ses colonnes et utf8_general_ci sur ses autres colonnes.

4

Juste pour ajouter au bon conseil de Thomas: Et pour trier les choses dans PHPMyAdmin vous devez changer le jeu de caractères pour toutes les colonnes EN MÊME TEMPS.

Juste gaspillé une demi-journée à essayer encore et encore de changer les colonnes une par une et d'obtenir continuellement le message d'erreur sur l'index FULLTEXT.

+0

Je crois que ce serait une limitation de MySQL plutôt qu'un phpMyAdmin - vous devriez tous les changer dans la même commande ALTER car vous ne pouvez pas avoir de classements mixtes dans un index FULLTEXT, même si c'est juste pour un "un petit moment". – thomasrutter

Questions connexes