MySQL
Conversione da MyISAM a InnoDB
Ricerca…
Conversione di base
ALTER TABLE foo ENGINE=InnoDB;
Questo converte la tabella, ma non si cura delle differenze tra i motori. La maggior parte delle differenze non ha importanza, specialmente per i tavoli di piccole dimensioni. Ma per le tabelle più impegnative, dovrebbero essere prese in considerazione altre considerazioni. Considerazioni di conversione
Conversione di tutte le tabelle in un database
Per convertire facilmente tutte le tabelle in un unico database, utilizzare quanto segue:
SET @DB_NAME = DATABASE();
SELECT CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements
FROM information_schema.tables
WHERE table_schema = @DB_NAME
AND `ENGINE` = 'MyISAM'
AND `TABLE_TYPE` = 'BASE TABLE';
NOTA: per funzionare, dovresti essere connesso al database affinché funzioni la funzione
DATABASE()
, altrimenti restituiràNULL
. Questo si applica principalmente al client mysql standard fornito con il server in quanto consente di connettersi senza specificare un database.
Esegui questa istruzione SQL per recuperare tutte le tabelle MyISAM
nel tuo database.
Infine, copia l'output ed esegui query SQL da esso.