Немного чистого интернета » Кодинг » MySQL » MySQL — поиск столбцов с неправильным COLLATION
Информация к новости
  • Просмотров: 119
  • Автор: Master
  • Дата: 9-03-2014, 16:04
9-03-2014, 16:04

MySQL — поиск столбцов с неправильным COLLATION

Категория: Кодинг » MySQL

Если вы столкнулись с ситуацией когда в базе есть колонки с кодировкой или сравнением отличающимися от базовых то вам наверняка не захочется их все перебирать руками. Я столкнулся с ситуацией, когда битриксовая проверка сайта сказала о 36 не правильных полях в базе и разумеется не сочла нужным указать какие именно. У меня был вариант или перебирать руками 350 таблиц и более 1000 столбцов в поисках не правильных, или найти их запросом… и такой запрос нашелся, он позволяет вытащить список всех полей таблиц с фильтрацией по кодировкам.

Вот он этот запрос:
выполнять в базе information_schema — у вас должен быть доступ к ней иначе ничего не выйдет


SELECT `TABLE_NAME` , `COLUMN_NAME` , `COLLATION_NAME`
FROM `COLUMNS`
WHERE `TABLE_SCHEMA` = '___TABLE_NAME___'
AND `COLLATION_NAME` != 'cp1251_general_ci'
LIMIT 0 , 30


___TABLE_NAME___ — имя базы данных в которой ищем
cp1251_general_ci — основная кодировка базы, ищем столбцы сравнение которых ей не соответствуют

Запрос вернет список вида ИМЯ_ТАБЛИЦЫ | ИМЯ_СТОЛБЦА | КОДИРОВКА_СТОЛБЦА по которому можно быстро исправить кодировки запросами или руками.
Будьте осторожны и бекапьтесь перед правкой, чтобы не побить данные в кириллице.

Источник





Метки к статье: MySQL, базы данных, оптимизация

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.