88 votes

Afficher les tables par moteur dans MySQL

Comment afficher toutes les tables de MySQL avec un moteur donné, par exemple InnoDB, MyISAM, FEDERATED ?

132voto

ChssPly76 Points 53452

Utilisez INFORMATION_SCHEMA.TABLES table :

SELECT table_name FROM INFORMATION_SCHEMA.TABLES
  WHERE engine = 'InnoDB'

4 votes

Vous pourriez également vouloir le schéma avec cela, donc la requête ressemblerait à : SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE engine = 'InnoDB'.

81voto

Alvin Points 1128

Si vous voulez les résultats d'une seule base de données

SELECT TABLE_NAME FROM information_schema.TABLES
    WHERE TABLE_SCHEMA = 'dbname' AND engine = 'InnoDB';

1 votes

Je l'ai marqué parce que vous voulez probablement regarder un certain schéma seulement.

6voto

MTK Points 1380

D'autres exemples ici.

Tous les tableaux par moteur (sauf les tableaux des systèmes) :

SELECT TABLE_SCHEMA as DbName ,TABLE_NAME as TableName ,ENGINE as Engine 
FROM information_schema.TABLES 
WHERE ENGINE = 'MyISAM' -- or InnoDB or whatever
AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');

Tous les tableaux sauf le moteur (sauf les tableaux du système) :

SELECT TABLE_SCHEMA as DbName ,TABLE_NAME as TableName ,ENGINE as Engine 
FROM information_schema.TABLES 
WHERE ENGINE != 'MyISAM' -- or InnoDB or whatever
AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');

1voto

Stevan Tosic Points 1149

Si quelqu'un a un problème et veut voir dans quelle BD se trouvent les tables avec un moteur spécifique.

SELECT 
        (SELECT group_concat(TABLE_NAME) 
            FROM information_schema.TABLES
            WHERE TABLE_SCHEMA = 'database1' 
            AND engine = 'MyIsam'
        ) as database1, 
        (SELECT group_concat(TABLE_NAME) 
            FROM information_schema.TABLES
            WHERE TABLE_SCHEMA = 'database2' 
            AND engine = 'MyIsam'
        ) as database2,
        (SELECT group_concat(TABLE_NAME) 
            FROM information_schema.TABLES
            WHERE TABLE_SCHEMA = 'database3' 
            AND engine = 'MyIsam'
         ) as database3;

Regards.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X