MySQL – конвертация базы из Win-1251 в UTF-8

MySQL – конвертация базы из Win-1251 в UTF-8

Изменить кодировку таблицы mysql в utf-8 можно командой:

set names utf-8;
ALTER TABLE `dbase`.`table` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci
Но есть небольшая проблема обычно в базе данных множество таблиц, и конвертировать в юникод хочется сразу все. Это возможно.
Достаточно выполнить команду:

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` = 'dbase'
где dbase название базы данных

Этот запрос будет работать в MySQL версии 5 и выше

utf8_general_ci и utf8_unicode_ci отличаются только скоростью работы и порядком сортировки. Поскольку utf8_general_ci работает быстрее – это и есть предпочтительный выбор. В случаее необходимости, способом описанным выше, можно будет изменить подкодировку UTF8 c utf8_general_ci на utf8_unicode_ci.

< Назад к списку новостей