MySQL: Hỗn hợp bất hợp pháp


7

Tôi đã thử sử dụng một quy trình được lưu trữ để tạo các chỉ mục và gặp lỗi sau:

ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,IMPLICIT) and 
                    (utf8_unicode_ci,IMPLICIT) for operation '='

Không có số dòng hoặc bất kỳ gợi ý gỡ lỗi nào khác.

  • Cách tốt nhất để gỡ lỗi này là gì?
  • Có bất kỳ hướng dẫn tốt để tránh mâu thuẫn mã hóa?

Câu trả lời:


4

Sau một số thử nghiệm và lỗi, tôi đã biết cách và nơi áp dụng COLLATE:

Các dòng được chuyển đổi như:

SELECT SOMETHING
FROM SOMEWHERE
WHERE table_schema = given_database
AND   table_name   = given_table
AND   index_name   = given_index;

Đến:

SELECT SOMETHING
FROM SOMEWHERE
WHERE table_schema COLLATE utf8_unicode_ci = given_database
AND   table_name   COLLATE utf8_unicode_ci = given_table
AND   index_name   COLLATE utf8_unicode_ci = given_index;
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.