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 cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.