Как выбрать из ШОУ ТАБЛИЦА СТАТУС результаты


36

Я хотел бы ограничить строки и столбцы, которые возвращаются из

SHOW TABLE STATUS

Команда в MySQL 5.1. Есть ли способ получить эту же информацию через SELECTоператор, чтобы я мог манипулировать результатами обычным способом?

Ответы:


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.
Джон Л

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ᵀᴹ
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.