próbuję rozwiązać problem kodowania znaków - poprzednio mieliśmy sortowania ustawiony dla tej kolumny utf8_general_ci co spowodowało problemy, ponieważ jest niewrażliwy akcent ..zestawień „utf8_general_ci” nie jest ważny zestaw znaków „latin1”
Próbuję znaleźć wszystkie wpisy w bazie danych, które mogły zostać naruszone.
set names utf8; select * from table1 t1 join table2 t2 on (t1.pid=t2.pid and t1.id != t2.id) collate utf8_general_ci;
Jednak to generuje błąd:
ERROR 1253 (42000): COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'
- Baza jest teraz zdefiniowany z "domyślnego zestawu znaków UTF-8"
- W tabeli zostały zdefiniowane z „charset = utf8 "
- Kolumna" pid "jest zdefiniowana za pomocą: CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
- wersja serwera jest wersja serwera: 5.5.37-MariaDB-0ubuntu0.14.04.1 (Ubuntu)
Pytanie: Dlaczego otrzymuję błąd o latin1 gdy latin1 nie wydaje się być obecna wszędzie w definicji tabeli/schematu?
MariaDB [(none)]> SHOW VARIABLES LIKE '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
MariaDB [(none)]> SHOW VARIABLES LIKE '%collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
Proszę zaksięgować tabelę "POKAŻ UTWÓRZ STÓŁ table1" i "POKAŻ UTWÓRZ TABELĘ table2". Jaki jest zestaw znaków połączenia klienta? Opublikuj także 'POKAŻ ZMIENNE LIKE '% char%'' –
Och, masz 'set names utf8', więc mam nadzieję, że' character_set_client' wyświetli 'utf8' –
przeczytaj [MÓJ POST] (http://meta.stackoverflow.com/ a/271056/2733506), jak publikować dobre i przydatne pytania ... są dostępne porady i narzędzia do formatowania, które pomagają w formatowaniu zapytań, tabel i wielu innych! –