如何查看表的排序规则? IE。我想看:
+-----------------------------+
| table | collation |
|-----------------------------|
| t_name | latin_general_ci |
+-----------------------------+
上面的答案很好,但它实际上并没有提供一个示例来使用户免于查找语法:
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';
也寻找检查整个数据库排序规则的方法:
use mydatabase;
(其中
mydatabase
是您要检查的数据库的名称)
SELECT @@character_set_database, @@collation_database;
+--------------------------+----------------------+
| @@character_set_database | @@collation_database |
+--------------------------+----------------------+
| utf8mb4 | utf8mb4_unicode_ci |
+--------------------------+----------------------+
1 row in set (0.00 sec)
SHOW CREATE TABLE tablename
您将获得与表格相关的所有信息。