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