Hinweise zu mySQL collation

Aus GEVITAS
Version vom 10. März 2023, 13:48 Uhr von Gevitas (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Worum es geht == Beim Ausführen eines Programmteils unter mySQL kommt es zu dieser Fehlermeldung: Illegal mix of collations (latin1_german1_ci, IMPLIC…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

1 Worum es geht

Beim Ausführen eines Programmteils unter mySQL kommt es zu dieser Fehlermeldung:


Illegal mix of collations (latin1_german1_ci, IMPLICIT) and (latin1_swedish_ci, IMPLICIT) for operation '<>'

Hier verwendet MySQL für die Datenbank als Standard die Collation (Zeichensatz) „latin1_swedish_ci“, der Standard bei einigen mySQL-Versionen. Als Folge nimmt die Datenbank für neue String-Felder immer als Standard die Collation „latin1_swedish_ci“!

2 Ändern der collation

Setzt den Standard für eine Tabelle
ALTER TABLE `maufko_version` COLLATE = latin1_german1_ci ;
Setzt den Standard für eine Datenbank
ALTER DATABASE mediarent CHARACTER SET latin1 COLLATE latin1_german1_ci;

Standard heisst aber nur, dass neue Felder bzw. Tabellen diese Collation bekommen, die bestehende Felder/Tabellen werden nicht geändert!

Zum Ändern muss das hier verwendet werden
ALTER TABLE `reflex`.`maufko_version` CONVERT TO CHARACTER SET latin1 COLLATE latin1_german1_ci ;
ALTER TABLE `reflex`.`mauffu_version` CONVERT TO CHARACTER SET latin1 COLLATE latin1_german1_ci ;
ALTER TABLE `reflex`.`maufpo_version` CONVERT TO CHARACTER SET latin1 COLLATE latin1_german1_ci ;