No MySQL, não há como especificar um mecanismo de armazenamento para um determinado banco de dados, apenas para tabelas únicas. No entanto, você pode especificar um mecanismo de armazenamento a ser usado durante uma sessão com:
SET storage_engine=InnoDB;
Portanto, você não precisa especificá-lo para cada tabela.
Como posso confirmar, se de fato todas as tabelas estão usando InnoDB?
mysql
innodb
myisam
storage-engines
kamal
fonte
fonte
Respostas:
Se você usar SHOW CREATE TABLE, terá que analisar o mecanismo da consulta.
Selecionar no banco de dados INFORMATION_SCHEMA é uma prática ruim, pois os desenvolvedores se reservam o direito de alterar seu esquema a qualquer momento (embora seja improvável).
A consulta correta a ser usada é SHOW TABLE STATUS - você pode obter informações sobre todas as tabelas em um banco de dados:
SHOW TABLE STATUS FROM `database`;
Ou para uma mesa específica:
SHOW TABLE STATUS FROM `database` LIKE 'tablename';
Uma das colunas que você receberá de volta é Motor.
fonte
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'db name' AND ENGINE != 'InnoDB'
fonte
show create table <table>
deve fazer o truque.fonte