mysql检查表的排序规则

Sco*_*ott 93 mysql collation

如何查看表格的排序规则?IE我想看到:

+-----------------------------+
|  table  |     collation     |
|-----------------------------|
| t_name  |  latin_general_ci |
+-----------------------------+
Run Code Online (Sandbox Code Playgroud)

Lek*_*eyn 136

SHOW TABLE STATUS 显示有关表的信息,包括排序规则.


Mou*_*any 77

上面的答案很棒,但实际上并没有提供一个示例来保存用户不必查找语法:

show table status like 'test';

test表名在哪里.

(根据以下评论进行了更正.)


Qba*_*ack 10

检查整个数据库的排序规则

如果有人也在寻找一种检查整个数据库的排序规则的方法:

  1. use mydatabase;(哪里mydatabase是您要检查的数据库的名称)
  2. SELECT @@character_set_database, @@collation_database;

您应该看到如下结果:

+--------------------------+----------------------+
| @@character_set_database | @@collation_database |
+--------------------------+----------------------+
| utf8mb4                  | utf8mb4_unicode_ci   |
+--------------------------+----------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)


Gio*_*ous 9

您还可以查询INFORMATION_SCHEMA.TABLES并获取特定表的排序规则:

SELECT TABLE_SCHEMA
    , TABLE_NAME
    , TABLE_COLLATION 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME ='t_name';
Run Code Online (Sandbox Code Playgroud)

SHOW TABLE STATUS包含许多不相关信息的输出相比,它提供了更具可读性的输出。

请注意,排序规则也可以应用于列(排序规则可能与表本身不同)。要获取特定表的列排序规则,可以查询INFORMATION_SCHEMA.COLUMNS

SELECT TABLE_SCHEMA 
    , TABLE_NAME 
    , COLUMN_NAME 
    , COLLATION_NAME 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME ='t_name';
Run Code Online (Sandbox Code Playgroud)

  • 适用于 mariaDB 10.4 (3认同)

小智 8

使用此查询:

SHOW CREATE TABLE tablename
Run Code Online (Sandbox Code Playgroud)

您将获得与表相关的所有信息.

  • SHOW CREATE TABLE不会显示排序规则.您必须使用如上所述的SHOW TABLE STATUS. (3认同)