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?
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';
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.
Vous pouvez utiliser WHERE ou LIKE comme pour SELECT:
show table status where name='name';
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]