2009-03-17 11 views
7

Recentemente ho cambiato un gruppo di colonne in utf8_general_ci (la collazione UTF-8 predefinita) ma quando ho tentato di cambiare una particolare colonna, ho ricevuto l'errore MySQL:Errore MySQL: "Column 'columnname' non può far parte dell'indice FULLTEXT"

Column 'node_content' cannot be part of FULLTEXT index 

In guardando attraverso documenti, sembra che MySQL ha un problema con gli indici full-text alcuni set di caratteri multi-byte, come UCS-2, ma che dovrebbe funzionare su UTF-8.

Sono sull'ultima versione stabile di MySQL 5.0.x (5.0.77 credo).

risposta

26

Ops, così ho trovato la risposta al mio problema:

Tutte le colonne di un indice FULLTEXT devono avere impostato non solo lo stesso carattere, ma anche la stesse regole di confronto.

Il mio indice FULLTEXT aveva utf8_unicode_ci su una delle sue colonne e utf8_general_ci sulle altre sue colonne.

4

Solo per aggiungere al buon consiglio di Thomas: E per ordinare le cose in PHPMyAdmin devi cambiare il set di caratteri per tutte le colonne ALLO STESSO TEMPO.

Basta sprecare mezza giornata per provare ancora e ancora a cambiare le colonne una alla volta e ottenere continuamente il messaggio di errore sull'indice FULLTEXT.

+0

Credo che sarebbe una limitazione MySQL piuttosto che una phpMyAdmin - dovresti cambiarle tutte nello stesso comando ALTER perché non puoi avere regole di confronto miste in un indice FULLTEXT, anche se è solo per un "poco tempo". – thomasrutter

Problemi correlati