MySQL проверка сопоставления таблицы - PullRequest
88 голосов
/ 30 сентября 2010

Как узнать, какое сопоставление имеет таблица?То есть я хочу увидеть:

+-----------------------------+
|  table  |     collation     |
|-----------------------------|
| t_name  |  latin_general_ci |
+-----------------------------+

Ответы [ 4 ]

132 голосов
/ 30 сентября 2010

SHOW TABLE STATUS показывает информацию о таблице, включая параметры сортировки.

64 голосов
/ 16 февраля 2015

Приведенный выше ответ хорош, но на самом деле он не предоставляет пример, который избавляет пользователя от необходимости искать синтаксис:

show table status like 'test';

Где testимя таблицы.

(исправлено в соответствии с комментариями ниже.)

9 голосов
/ 13 июля 2015

Используйте этот запрос:

SHOW CREATE TABLE tablename

Вы получите всю информацию, связанную с таблицей.

7 голосов
/ 24 сентября 2018

Вы также можете запросить INFORMATION_SCHEMA.TABLES и получить параметры сортировки для конкретной таблицы:

SELECT TABLE_SCHEMA
    , TABLE_NAME
    , TABLE_COLLATION 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME ='t_name';

, которая дает намного более читабельный вывод в отличие от SHOW TABLE STATUS, который содержит много неактуальной информации.

Обратите внимание, что параметры сортировки также могут применяться к столбцам (которые могут иметь параметры, отличные от самой таблицы).Чтобы получить параметры сортировки столбцов для конкретной таблицы, вы можете запросить INFORMATION_SCHEMA.COLUMNS:

SELECT TABLE_SCHEMA 
    , TABLE_NAME 
    , COLUMN_NAME 
    , COLLATION_NAME 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME ='t_name';
...