Как изменить столкновение каждого поля в каждой таблице в MySQL? - PullRequest
0 голосов
/ 21 декабря 2011

У меня есть 8 таблиц с множеством полей, все они созданы с использованием латинской кодировки.

Я хочу преобразовать их все в UTF-8.

Для базы данных и таблиц я могу сделатьэто вручную.

Как мне сделать это для полей программно?

1 Ответ

1 голос
/ 21 декабря 2011

Я бы рекомендовал information_schema.columns .
Это очень полезный вид.

Чтобы получить список столбцов не в UTF-8: -

select table_schema, table_name, column_name, character_set_name, collation_name 
from information_schema.columns
where table_schema in ('YOUR_DB') and collation_name not like 'utf8%';

select table_schema, table_name, column_name, character_set_name, collation_name 
from information_schema.columns
where table_schema in ('YOUR_DB') and character_set_name not like 'utf8%';

Лучшее в этом представлении ... оно также включает тип данных для столбца (см. COLUMN_TYPE в документе), значение по умолчанию (см. COLUMN_DEFAULT) и т. Д. ...
со всей этой информацией, я думаю, довольно легко использовать на языке программирования для создания соответствующего SQL (и выполнить его)

...