2009-03-17 39 views
7

Gần đây tôi đã thay đổi một loạt các cột thành utf8_general_ci (mặc định UTF-8 collation) nhưng khi cố gắng thay đổi một cột cụ thể, tôi nhận được lỗi MySQL:Lỗi MySQL: "Cột 'tên cột' không thể là một phần của chỉ mục FULLTEXT"

Column 'node_content' cannot be part of FULLTEXT index 

Trong nhìn qua tài liệu, dường như MySQL có một vấn đề với các chỉ mục toàn văn trên một số bảng mã đa byte như UCS-2, nhưng mà nó cũng làm việc trên UTF-8.

Tôi đang sử dụng bản phát hành MySQL 5.0.x ổn định mới nhất (5.0.77 Tôi tin).

Trả lời

26

Rất tiếc, vì vậy tôi đã tìm thấy câu trả lời cho vấn đề của tôi:

Tất cả các cột của một chỉ mục toàn văn phải có không chỉ là nhân vật cùng một thiết lập mà còn là cùng đối chiếu.

Chỉ mục FULLTEXT của tôi có utf8_unicode_ci trên một trong các cột của nó và utf8_general_ci trên các cột khác của nó.

4

Chỉ cần thêm vào lời khuyên tốt của Thomas: Và để sắp xếp mọi thứ trong PHPMyAdmin bạn phải thay đổi ký tự cho tất cả các cột THEO D TIMEI CÙNG.

Chỉ cần lãng phí nửa ngày cố gắng lặp đi lặp lại để thay đổi từng cột một và liên tục nhận được thông báo lỗi về chỉ mục FULLTEXT.

+0

Tôi tin rằng đó sẽ là một hạn chế của MySQL thay vì phpMyAdmin - bạn phải thay đổi tất cả chúng trong cùng một lệnh ALTER vì bạn không thể có các đối chiếu hỗn hợp trong chỉ mục FULLTEXT, ngay cả khi nó chỉ dành cho "trong chốc lát". – thomasrutter

Các vấn đề liên quan