如何从SHOW TABLE STATUS结果中进行选择


36

我想限制从行返回的行和列

SHOW TABLE STATUS

MySQL 5.1中的命令 有没有一种方法可以通过一条SELECT语句获取相同的信息,以便我可以以正常方式操纵结果?

Answers:


33

它的列多于SHOW TABLE STATUS;但是有窍门:

SELECT * FROM information_schema.tables WHERE table_schema = DATABASE();

更新2011-06-07 19:02

SELECT table_name,Engine,Version,Row_format,table_rows,Avg_row_length,
Data_length,Max_data_length,Index_length,Data_free,Auto_increment,
Create_time,Update_time,Check_time,table_collation,Checksum,
Create_options,table_comment FROM information_schema.tables
WHERE table_schema = DATABASE();

如果您设置当前数据库,这些查询将起作用。

您还可以对特定数据库进行硬编码:

SELECT table_name,Engine,Version,Row_format,table_rows,Avg_row_length,
Data_length,Max_data_length,Index_length,Data_free,Auto_increment,
Create_time,Update_time,Check_time,table_collation,Checksum,
Create_options,table_comment FROM information_schema.tables
WHERE table_schema = 'mysql';

10
show table status like 'table1';

您不能以这种方式操作列,但是仅选择所需的表并获得常规SHOW TABLE STATUS输出会更容易。


哪个限制行而不限制列,对吗?
杰克·道格拉斯

正确。您无法以这种方式操作列,但是仅选择所需的表并获得正常的SHOW TABLE STATUS输出更为容易。
约翰L

3

您可以将WHERE或LIKE用作SELECT:

show table status where name='name'; 

2

show table status 无需选择当前数据库即可使用:

show table status from DbName where name='TableName';

参见文档

SHOW TABLE STATUS
    [{FROM | IN} db_name]
    [LIKE 'pattern' | WHERE expr]

-2

您可以使用此查询来显示所有信息架构。

SELECT * FROM information_schema.tables WHERE table_schema = DATABASE();

或速记:

显示表状态,例如“ tableName”


1
我在此答案中看不到其他答案中尚未发布的任何内容。
ypercubeᵀᴹ
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.