En MySQL, no hay forma de especificar un motor de almacenamiento para una determinada base de datos, solo para tablas individuales. Sin embargo, puede especificar un motor de almacenamiento que se utilizará durante una sesión con:
SET storage_engine=InnoDB;
Por lo tanto, no tiene que especificarlo para cada tabla.
¿Cómo confirmo, si de hecho todas las tablas están usando InnoDB?
mysql
innodb
myisam
storage-engines
kamal
fuente
fuente
Respuestas:
Si usa SHOW CREATE TABLE, debe analizar el motor fuera de la consulta.
Seleccionar de la base de datos INFORMATION_SCHEMA es una mala práctica, ya que los desarrolladores se reservan el derecho de cambiar su esquema en cualquier momento (aunque es poco probable).
La consulta correcta para usar es MOSTRAR ESTADO DE LA TABLA : puede obtener información sobre todas las tablas en una base de datos:
SHOW TABLE STATUS FROM `database`;
O para una mesa específica:
SHOW TABLE STATUS FROM `database` LIKE 'tablename';
Una de las columnas que obtendrá es Motor.
fuente
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'db name' AND ENGINE != 'InnoDB'
fuente
show create table <table>
debería hacer el truco.fuente