Получение MySQL для отображения кодировки, используемой для определенного столбца - PullRequest
6 голосов
/ 29 декабря 2011

В руководстве MySQL (http://dev.mysql.com/doc/refman/5.1/en/charset-syntax.html) написано:

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

Я хотел бы опросить определенный столбец CHAR / VARCHAR / TEXT и выяснить, какую кодировкуMySQL думает, что это так. Есть ли простой способ сделать это? Я знаю, что могу использовать SHOW CREATE TABLE <table>, чтобы увидеть кодировку по умолчанию для таблицы, но я хотел бы сделать то же самое на уровне столбцов, как предлагают документычто он может не совпадать с таблицей по умолчанию.

1 Ответ

14 голосов
/ 29 декабря 2011

Вы можете сделать это в таблице information_schema.COLUMNS.

SELECT 
  COLUMN_NAME,
  TABLE_NAME,
  CHARACTER_SET_NAME,
  COLUMN_TYPE,
  COLLATION_NAME
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'your_database_name'

Пример вывода из базы данных Gallery2:

+-------------------------+--------------------------+--------------------+--------------+-----------------+
| COLUMN_NAME             | TABLE_NAME               | CHARACTER_SET_NAME | COLUMN_TYPE  | COLLATION_NAME  |
+-------------------------+--------------------------+--------------------+--------------+-----------------+
| g_accessListId          | g2_AccessMap             | NULL               | int(11)      | NULL            |
| g_userOrGroupId         | g2_AccessMap             | NULL               | int(11)      | NULL            |
| g_permission            | g2_AccessMap             | NULL               | int(11)      | NULL            |
| g_itemId                | g2_AccessSubscriberMap   | NULL               | int(11)      | NULL            |
| g_accessListId          | g2_AccessSubscriberMap   | NULL               | int(11)      | NULL            |
| g_id                    | g2_AlbumItem             | NULL               | int(11)      | NULL            |
| g_theme                 | g2_AlbumItem             | utf8               | varchar(32)  | utf8_general_ci |
| g_orderBy               | g2_AlbumItem             | utf8               | varchar(128) | utf8_general_ci |
| g_orderDirection        | g2_AlbumItem             | utf8               | varchar(32)  | utf8_general_ci |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...