Лучший вариант также изменить сопоставление столбцов 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 в столбце, отличном от 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