web-dev-qa-db-fra.com

Comment sélectionner à partir des résultats SHOW TABLE STATUS

Je voudrais limiter les lignes et les colonnes qui reviennent du

SHOW TABLE STATUS

dans MySQL 5.1. Existe-t-il un moyen d'obtenir ces mêmes informations via une instruction SELECT afin que je puisse manipuler les résultats de manière normale?

38
Leopd

Cela a plus de colonnes que SHOW TABLE STATUS; mais fait l'affaire:

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

MISE À JOUR 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();

Ces requêtes fonctionnent si vous définissez la base de données actuelle.

Vous pouvez également coder en dur la base de données spécifique:

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';
34
RolandoMySQLDBA
show table status like 'table1';

Vous ne pouvez pas manipuler les colonnes de cette façon, mais il est plus facile de sélectionner uniquement les tables que vous voulez et d'obtenir la normale SHOW TABLE STATUS production.

10
John L

Vous pouvez utiliser WHERE ou LIKE comme pour SELECT:

show table status where name='name'; 
3
gayavat

show table status peut être utilisé sans sélectionner la base de données actuelle:

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

Voir documentation :

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