2009-11-11 11 views

Respuesta

114

Uso INFORMATION_SCHEMA.TABLES tabla:

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

También puede ser que desee el esquema con el que, para que la consulta se vea así: SELECCIONE TABLA_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES DONDE motor = 'InnoDB' –

66

si desea que los resultados de una sola base de datos

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

Marqué esto porque probablemente quiera retomar k solo en un cierto esquema –

1

Si alguno tiene un problema y quieren ver en el que DB es tablas con motor específico

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; 

Atentamente.

4

Otros ejemplos aquí.

Todas las tablas por el motor (excepto las tablas del sistema):

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

Todas las tablas excepto motor (excepto las tablas del sistema):

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'); 
Cuestiones relacionadas