Created
June 30, 2017 11:35
-
-
Save helloris25/86dd4769c5860f4efb00b4e2d036d4c7 to your computer and use it in GitHub Desktop.
Конвертация всех таблицы в нужную кодировку
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Конвертацию БД из Win-1251 в UTF8 можно произвести разными способами, но самый быстрый и простой - использование SQL-запроса, приведенного ниже. | |
ALTER TABLE `db_name`.`table_name` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; | |
При помощи этого запроса, можно конвертировать таблицу базы данных в любую, доступную в MySQL кодировку. Но что делать, если таблиц 100, 200 или больше, и все таблицы необходимо перекодировать в UTF8 из Win-1251? Для решения этой проблемы, можно отправить в MySQL запрос, который сгенерирует необходимые SQL-запросы для всех таблиц БД. При использовании PHPMyAdmin останется только скопировать результаты и запустить их как SQL-запрос: | |
SELECT CONCAT( 'ALTER TABLE `', t.`TABLE_SCHEMA` , '`.`', t.`TABLE_NAME` , '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) AS sqlcode | |
FROM `information_schema`.`TABLES` t | |
WHERE 1 | |
AND t.`TABLE_SCHEMA` = 'My_DB_for_convert' | |
ORDER BY 1 | |
LIMIT 0 , 90 | |
Этот запрос будет работать в MySQL версии 5 и выше. My_DB_for_convert - следует заменить на имя БД, таблицы в которой необходимо конвертировать в UTF-8. | |
utf8_general_ci или utf8_unicode_ci | |
utf8_general_ci и utf8_unicode_ci отличаются только скоростью работы и порядком сортировки. Поскольку utf8_general_ci работает быстрее - это и есть предпочтительный выбор. Подробнее, про отличия utf8_general_ci и utf8_unicode_ci можно прочитать в официальной документации MySQL (eng). В случаее необходимости, способом описанным выше, можно будет изменить подкодировку UTF8 c utf8_general_ci на utf8_unicode_ci. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment