Изменить кодировку всех таблиц в MYSQL базе одним запросом

Вот столкнулся с проблемой, манипуляций одной из программ с базой. Во время обновления программа начала выдавать ошибки вставки в базу данных, что не может привести в соотвествие таблицы с разными кодировками в едином запросе.
Ну решение очевидно, надо просто изменить у всех таблиц кодировку сравнения.
Но таблиц больше 100 из тисячи нужно было изменить, и вручную такое делать как-то не солидно, да и пипец как долго :).
Вощем нашел быстрый способ: взять имена всех таблиц из базы данных и составить sql запросы на изменение кодировки.
Затем скопировать их и выполнить как обычные запросы. Довольно неплохое решение.

Ограничение :) - Только mysql версии больше 5 поддерживает следующий запрос.

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` = 'db_name'
ORDER BY 1

db_name замените на имя своей базы данных (схемы), а utf8 на нужную вам кодировку.

Следующая запись

Предыдущая запись

Похожие записи

Комментарии

Еще нет комментариев.

Пингбэки

Оповещения открыты.

Трэкбэки

URL архива

Only authorized users can post comments