Как изменить Collation на utf8_bin за один раз
Я установил Collation всех моих таблиц базы данных как latin1_swedish_ci
, и теперь я понимаю, что я должен использовать utf8_bin
или utf8_general_ci
.
Как я могу изменить сортировку в таблицах на utf8_bin
или utf8_general_ci
за один раз? Могу ли я использовать запрос или что-то еще?
Ответы
Ответ 1
Вам просто нужно запустить ALTER в каждой из таблиц следующим образом:
ALTER TABLE <table name> COLLATE utf8_general_ci;
Если вам также необходимо обновить существующую кодировку символов (маловероятно звуками вещей), вы можете использовать:
ALTER TABLE <table name> CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Ответ 2
Вы также можете обновить сопоставление базы данных с помощью:
ALTER DATABASE `DATABASE_NAME` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
Ответ 3
Вы можете изменить сортировку таблицы с помощью ALTER TABLE
:
alter table table_name collate=utf8_general_ci;
Ответ 4
Вот два способа. Сначала я работал на меня. От терминала (просто запомните резервное копирование раньше.)
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 &
Источник: Commandlineinfu.com
Из MySQL
вам придется использовать команду 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'