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 la NULL . 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.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow