304 votes

Comment faire pour convertir toutes les tables MyISAM en InnoDB ?

Je sais que je peux émettre une table alter individuellement pour modifier la table de stockage MyISAM en InooDB.

Je me demande si il existe un moyen de changer rapidement tous les vers InnoDB ?

626voto

Will Jones Points 1881

Exécuter ce déclaration (dans le client mysql, phpMyAdmin, ou ailleurs) pour récupérer toutes les tables dans votre base de données.

Remplacez la valeur de la `` variable avec le nom de votre base de données.

Ensuite, copiez la sortie et exécuter en tant qu’un nouveau `` requête.

186voto

Gajendra Bang Points 1576
<?php
    // connect your database here first 
    // 

    // Actual code starts here 

    $sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
        WHERE TABLE_SCHEMA = 'your_database_name' 
        AND ENGINE <> 'InnoDB'";

    $rs = mysql_query($sql);

    while($row = mysql_fetch_array($rs))
    {
        $tbl = $row[0];
        $sql = "ALTER TABLE $tbl ENGINE=INNODB";
        mysql_query($sql);
    }
?>

23voto

Vijay Varadan Points 446

Scripts ci-dessous, remplacez , et avec vos données spécifiques.

Pour afficher les instructions que vous pouvez copier-coller dans une session cliente de mysql tapez ce qui suit :

Pour simplement exécuter le changement, utilisez ceci :

CRÉDIT : Il s’agit d’une variante de ce qui a été décrit dans cet article.

21voto

Zwarmapapa Points 111

Utilisez cette classe comme une requête sql dans votre phpMyAdmin

20voto

Vous pouvez exécuter cette instruction dans l’outil de ligne de commande mysql :

Vous devrez peut-être spécifier le nom d’utilisateur et mot de passe en utilisant : nom d’utilisateur de mysql -u -p le résultat est un script sql que vous pouvez diriger vers mysql :

Remplacez « nom-de-base de données » dans la déclaration ci-dessus et les ligne de commande.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X