Відповіді:
SHOW TABLE STATUS
показує інформацію про таблицю, включаючи порівняння.
Наприклад SHOW TABLE STATUS where name like 'TABLE_NAME'
Наведена вище відповідь чудова, але насправді вона не дає приклад, який врятує користувача від необхідності шукати синтаксис:
show table status like 'test';
Звідки test
назва таблиці.
(Виправлено відповідно до коментарів нижче.)
Ви також можете здійснити запит 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';
Скористайтеся цим запитом:
SHOW CREATE TABLE tablename
Ви отримаєте всю інформацію, що стосується таблиці.
...) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=latin1
Я здогадуюсь, що це може не відображати порівняння, якщо воно встановлено за замовчуванням для бази даних у пізніших версіях mysql / mariadb.
utf8
, але різні порівняння utf8_general_ci
проти utf8_unicode_ci
. Це може спричинити повідомлення про помилки на кшталт HY000, 1267, Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
... яке повідомлення привело мене на цю сторінку.
Ця команда описує
mysql> use <database name>
mysql> show table status like '<table name>';
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+---------------------+------------+--------------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+---------------------+------------+--------------------+----------+----------------+---------+
| test | InnoDB | 11 | Dynamic | 52 | 315 | 16384 | 0 | 0 | 0 | 59 | NULL | 2020-04-16 23:00:00 | NULL | utf8mb4_unicode_ci | NULL | | |
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+---------------------+------------+--------------------+----------+----------------+---------+
1 row in set (0.01 sec)