Comment sélectionner les résultats de SHOW TABLE STATUS


36

Je voudrais limiter les lignes et les colonnes qui reviennent de la

SHOW TABLE STATUS

commande dans MySQL 5.1. Existe-t-il un moyen d'obtenir ces mêmes informations par le biais d'une SELECTdéclaration afin que je puisse manipuler les résultats de manière normale?

Réponses:


33

Cela a plus de colonnes que SHOW TABLE STATUS; mais fait le tour:

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

10
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 souhaitées et d’obtenir une SHOW TABLE STATUSsortie normale .


Ce qui limite les lignes mais pas les colonnes, non?
Jack Douglas

Correct. Vous ne pouvez pas manipuler les colonnes de cette façon, mais il est plus facile de sélectionner uniquement les tables souhaitées et d'obtenir la sortie normale de SHOW TABLE STATUS.
John L

3

Vous pouvez utiliser WHERE ou LIKE comme pour SELECT:

show table status where name='name'; 

2

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

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

Voir la documentation :

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

-2

Vous pouvez utiliser cette requête pour afficher tous les schémas d'informations.

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

ou le raccourci:

SHOW TABLE STATUS LIKE 'nomTable'


1
Je ne vois rien dans cette réponse qui n'ait pas déjà été posté dans d'autres réponses.
Ypercubeᵀᴹ
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.