2008-10-17 150 views

回答

398

SHOW TABLE STATUS WHERE Name = 'xxx'

这会给你(除其他事项外)的Engine列,这是你想要的。

+2

如果我的表被破坏,它只是显示引擎= NULL,并有一个“注释”告诉我修表。然而,在我知道如何修复表格之前,我猜我需要知道引擎(我没有那么诚实)。因此,@ Jocker的下面的评论对我更有帮助。 – harperville 2013-09-09 13:33:01

+0

@Greg,我们应该使用这个还是Jocker的解决方案? – Pacerier 2015-02-24 05:30:26

+0

@Prier - 两者都很好。不同之处在于这个解决方案给出了一个表的信息,而Jocker的解决方案显示了数据库中所有表的引擎类型(同时也具有更好的可读性)。 – kramer65 2016-03-20 08:36:56

48
SHOW CREATE TABLE <tablename>; 

分辨率较低,但比SHOW TABLE STATUS更具可读性。

35

或只是

show table status;

只是,这将LLIST您的数据库中的所有表。

+0

由于某种原因在我的情况下返回0行... – 2014-01-16 16:10:17

195

要显示数据库中的所有表及其引擎列表,使用SQL查询:

​​

替换dbname用你的数据库名称。

12

位一个调整到Jocker的回应(我会发布的评论,但我没有足够的人缘还):

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL; 

这不包括在列表MySQL的意见,不具有一个引擎。相较于

SHOW CREATE TABLE <tablename>; 

\G伎俩输出

9
SHOW CREATE TABLE <tablename>\G 

将其格式化好得多,也记住了很多其他的查询/命令非常有用。

0

去INFORMATION_SCHEMA数据库中,你会发现那么“表”表中选择它;

MySQL的“使用INFORMATION_SCHEMA; MySQL的“选择表名,从表引擎;

4
mysqlshow -i <database_name> 

将显示特定数据库的所有表的信息。

mysqlshow -i <database_name> <table_name> 

只会为特定表格这样做。

0

另一种方式,也许是单个或匹配表集合的最短拿到状态:

SHOW TABLE STATUS LIKE 'table'; 

然后,您可以使用LIKE操作符,例如:

SHOW TABLE STATUS LIKE 'field_data_%'; 
2

如果你是一个linux用户:

为了显示mysql服务器上所有数据库的所有表的引擎,没有表information_schema,mysql,performance_schema

less < <({ for i in $(mysql -e "show databases;" | cat | grep -v -e Database-e information_schema -e mysql -e performance_schema); do echo "--------------------$i--------------------"; mysql -e "use $i; show table status;"; done } | column -t) 

如果你至少在linux上,你可能会喜欢这个。

将打开less中所有表格的所有信息,请按-S截断过长的行。

输出示例:

--------------------information_schema-------------------- 
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 C 
CHARACTER_SETS            MEMORY    10  Fixed  NULL 384    0   16434816   0    0   NULL   2015-07-13 15:48:45  NULL  N 
COLLATIONS             MEMORY    10  Fixed  NULL 231    0   16704765   0    0   NULL   2015-07-13 15:48:45  NULL  N 
COLLATION_CHARACTER_SET_APPLICABILITY      MEMORY    10  Fixed  NULL 195    0   16357770   0    0   NULL   2015-07-13 15:48:45  NULL  N 
COLUMNS              MyISAM    10  Dynamic  NULL 0    0   281474976710655  1024   0   NULL   2015-07-13 15:48:45  2015-07-13 1 
COLUMN_PRIVILEGES           MEMORY    10  Fixed  NULL 2565   0   16757145   0    0   NULL   2015-07-13 15:48:45  NULL  N 
ENGINES              MEMORY    10  Fixed  NULL 490    0   16574250   0    0   NULL   2015-07-13 15:48:45  NULL  N 
EVENTS              MyISAM    10  Dynamic  NULL 0    0   281474976710655  1024   0   NULL   2015-07-13 15:48:45  2015-07-13 1 
FILES              MEMORY    10  Fixed  NULL 2677   0   16758020   0    0   NULL   2015-07-13 15:48:45  NULL  N 
GLOBAL_STATUS            MEMORY    10  Fixed  NULL 3268   0   16755036   0    0   NULL   2015-07-13 15:48:45  NULL  N 
GLOBAL_VARIABLES           MEMORY    10  Fixed  NULL 3268   0   16755036   0    0   NULL   2015-07-13 15:48:45  NULL  N 
KEY_COLUMN_USAGE           MEMORY    10  Fixed  NULL 4637   0   16762755   0 

. 
. 
. 
3

如果你使用MySQL的工作台,您可以用鼠标右键单击该表并选择“更改表”。

在该窗口中,您可以看到您的表格引擎并更改它。