回答:
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)