MySQL:排序规则的非法混合

Ada*_*tan 9 mysql collation utf-8 encoding

我尝试使用存储过程来创建索引,但出现以下错误:

ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,IMPLICIT) and 
                    (utf8_unicode_ci,IMPLICIT) for operation '='
Run Code Online (Sandbox Code Playgroud)

没有行号或任何其他调试提示。

  • 调试此错误的最佳方法是什么?
  • 有什么好的指导方针可以避免编码不一致吗?

Ada*_*tan 5

经过一些试验和错误,我已经学会了如何以及在哪里申请COLLATE

转换后的行,如:

SELECT SOMETHING
FROM SOMEWHERE
WHERE table_schema = given_database
AND   table_name   = given_table
AND   index_name   = given_index;
Run Code Online (Sandbox Code Playgroud)

到:

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;
Run Code Online (Sandbox Code Playgroud)