ITDim
    Все будет итышно, когда вы с нами :)

Смена кодировки всех таблиц в бд (запрос)


Вот столкнулся с проблемой, манипуляций одной из программ с базой. Во время обновления программа начала выдавать ошибки вставки в базу данных, что не может привести в соотвествие таблицы с разными кодировками в едином запросе.

Ну решение очевидно, надо просто изменить у всех таблиц кодировку сравнения.
Но таблиц больше 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 на нужную вам кодировку.

0 коммент.:

Отправить комментарий