Gradirei se qualcuno potesse aiutarmi su qual è il comando corretto in MySQL per interrogare tutto il database per avere il motore "MyISAM". Devo convertire tutti i DB e le tabelle da MyISAM a InnoDB.
Gradirei se qualcuno potesse aiutarmi su qual è il comando corretto in MySQL per interrogare tutto il database per avere il motore "MyISAM". Devo convertire tutti i DB e le tabelle da MyISAM a InnoDB.
Risposte:
Di seguito è la query per trovare tutte le tabelle che hanno MyISAM
Engine
SELECT TABLE_SCHEMA as DbName ,TABLE_NAME as TableName ,ENGINE as Engine FROM information_schema.TABLES WHERE ENGINE='MyISAM' AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');
Query sopra elencherà tutte le tabelle con MyISAM
Engine.
Per come convertire le tabelle MyISAM esistenti in InnoDB
Di seguito è la query che restituirà le istruzioni ALTER in cui convertire le MyISAM
tabelle esistenti InnoDB
.
SELECT CONCAT('ALTER TABLE `', TABLE_SCHEMA,'`.`',TABLE_NAME, '` ENGINE = InnoDB;') FROM information_schema.TABLES WHERE ENGINE='MyISAM' AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');
È possibile eseguire queste istruzioni per convertire i motori.