2009-03-17 21 views
7

Geçtiğimiz günlerde bir grup sütunu utf8_general_ci (varsayılan UTF-8 harmanlama) olarak değiştirdim ancak belirli bir sütunu değiştirmeye çalışırken, MySQL hatasını aldım: docs bakarak yılındaMySQL hatası: "Sütun 'sütun adı' FULLTEXT dizininin bir parçası olamaz"

Column 'node_content' cannot be part of FULLTEXT index 

, MySQL böyle UCS-2 gibi bazı çoklu bayt karakter kümelerinde üzerinde FULLTEXT endeksler ile ilgili bir sorun olduğu anlaşılıyor, ancak UTF-8 üzerinde çalışmak gerektiğini söyledi.

En son kararlı MySQL 5.0.x sürümündeyim (5.0.77 Sanırım).

cevap

26

Üzgünüz, bu yüzden benim sorunun cevabı bulduk: Bir fulltext endeksinin

Tüm sütunlar aynı karakter sadece set alacak hem de aynı harmanlama gerekir.

Benim FULLTEXT dizinimin sütunlarından birinde utf8_unicode_ci ve diğer sütunlarında utf8_general_ci vardı.

4

Sadece Thomas'ın iyi tavsiyesine eklemek için: Ve PHPMyAdmin'de işleri sıralamak için, karakter kümesini AYNI ZAMANTA tüm sütunlar için değiştirmeniz gerekir.

Sadece yarım günde bir kez sütunları tek tek değiştirmek ve sürekli olarak FULLTEXT endeksi hakkında hata mesajı almak için tekrar denemek ve boşa harcanan.

+0

Bunun bir phpMyAdmin yerine bir MySQL sınırlaması olacağına inanıyorum - bunların tümünü aynı ALTER komutunda değiştirmeniz gerekir, çünkü bir FULLTEXT dizininde karışık harmanlamalar yapamazsınız. "birazdan". – thomasrutter