MySQL
Conversion de MyISAM à InnoDB
Recherche…
Conversion de base
ALTER TABLE foo ENGINE=InnoDB;
Cela convertit la table, mais ne prend pas en compte les différences entre les moteurs. La plupart des différences n’auront aucune importance, en particulier pour les petites tables. Mais pour les tables plus fréquentées, d'autres considérations doivent être prises en compte. Considérations de conversion
Conversion de toutes les tables dans une base de données
Pour convertir facilement toutes les tables d'une base de données, utilisez ce qui suit:
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';
REMARQUE: Vous devez être connecté à votre base de données pour que la fonction
DATABASE()
fonctionne, sinon elle renverra laNULL
. Cela s'applique principalement au client mysql standard livré avec le serveur car il permet de se connecter sans spécifier de base de données.
Exécutez cette instruction SQL pour récupérer toutes les tables MyISAM
de votre base de données.
Enfin, copiez le résultat et exécutez des requêtes SQL à partir de celui-ci.