MySQL: Illegale Mischung von Kollatierungen

7

Ich habe versucht, mit einer gespeicherten Prozedur Indizes zu erstellen , und habe den folgenden Fehler erhalten:

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

Es gibt keine Zeilennummer oder einen anderen Debugging-Hinweis.

  • Wie kann dieser Fehler am besten behoben werden?
  • Gibt es gute Richtlinien, um Kodierungsinkonsistenzen zu vermeiden?
Adam Matan
quelle

Antworten:

4

Nach einigem Ausprobieren habe ich gelernt, wie und wo ich mich bewerben soll COLLATE:

Konvertierte Zeilen wie:

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

Zu:

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;
Adam Matan
quelle