我想限制从MySQL 5.1中的

SHOW TABLE STATUS


命令返回的行和列。有没有办法通过SELECT语句获得相同的信息,以便我可以以正常方式操纵结果?

#1 楼

它的列多于SHOW TABLE STATUS;但是可以解决问题:

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


UPDATE 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';


#2 楼

show table status like 'table1';


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

评论


哪个限制行而不限制列,对吗?

–杰克·道格拉斯(Jack Douglas)
2012年3月27日在6:48

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

– John L
2012年3月27日13:46

#3 楼

您可以将WHERE或LIKE用于SELECT:

show table status where name='name'; 


#4 楼

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

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


请参见文档:


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



#5 楼

您可以使用此查询显示所有信息模式。

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

或简写:

显示表格状态,例如“ tableName”

评论


我没有看到其他答案中尚未发布的任何内容。

–超立方体ᵀᴹ
18 Mar 10 '18 at 17:01