Jak zmienić sortowanie na utf8_bin za jednym razem


Skonfigurowałem sortowanie wszystkich moich tabel bazy danych na
latin1_swedish_ci
i teraz rozumiem, że muszę używać
utf8_bin
lub
utf8_general_ci
.
Jak mogę zmienić sortowanie w tabelach na
utf8_bin
lub
utf8_general_ci
za jednym razem? Czy mogę użyć zapytania lub czegoś innego?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Musisz tylko uruchomić ALTER na każdej z tabel w następujący sposób:
ALTER TABLE <table name> COLLATE utf8_general_ci;

Jeśli potrzebujesz również zaktualizować istniejące kodowanie znaków (prawdopodobnie nie na podstawie dźwięków rzeczy), możesz użyć:
ALTER TABLE <table name> CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz również zaktualizować sortowanie bazy danych za pomocą:
ALTER DATABASE `DATABASE_NAME` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz zmienić sortowanie tabeli za pomocą
ALTER TABLE
:
alter table table_name collate=utf8_general_ci;
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Istnieją dwa sposoby. Pierwsza zadziałała dla mnie. Z terminala (pamiętaj tylko o wcześniejszym wykonaniu kopii zapasowej).
mysql --database=dbname -B -N -e "SHOW TABLES" | awk '{print "ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;"}' | mysql --database=dbname &

Źródło:

Commandlineinfu.com
http://www.commandlinefu.com/c ... -utf8
Ponieważ MySQL
będziesz musiał użyć polecenia Concat
SELECT CONCAT('ALTER TABLE `', tbl.`TABLE_SCHEMA`, '`.`', tbl.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') FROM `information_schema`.`TABLES` tbl WHERE tbl.`TABLE_SCHEMA` = 'dbname'

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się