Кращий варіант також змінити сортування стовпців varchar всередині таблиці
SELECT CONCAT('ALTER TABLE `', TABLE_NAME,'` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') AS mySQL
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA= "myschema"
AND TABLE_TYPE="BASE TABLE"
До того ж, якщо у вас є дані з ключем forein у стовпці non utf8 перед запуском використання сценарію групи
SET foreign_key_checks = 0;
Це означає, що глобальний SQL буде для mySQL:
SET foreign_key_checks = 0;
ALTER TABLE `table1` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE `table2` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE `tableXXX` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
SET foreign_key_checks = 1;
Але будьте обережні, якщо відповідно до документації mysql http://dev.mysql.com/doc/refman/5.1/en/charset-column.html ,
Якщо ви використовуєте ALTER TABLE для перетворення стовпця з одного набору символів в інший, MySQL намагається зіставити значення даних, але якщо набори символів несумісні, можлива втрата даних. "
РЕДАГУВАТИ: Спеціально для переліку типів стовпців, він просто збиває повністю встановлені перерахування (навіть якщо немає спеціальних символів)
https://bugs.mysql.com/bug.php?id=26731