Comment changer TOUTES les tables d'une base Innodb vers MyIsam (ou le contraire) en une seule fois et en ne faisant qu'une seule requête SQL ?
Version imprimable
Comment changer TOUTES les tables d'une base Innodb vers MyIsam (ou le contraire) en une seule fois et en ne faisant qu'une seule requête SQL ?
Trop difficile a envisager ou c'est un caprice irréalisable ?
À mon avis c'est impossible. Bouclez sur le résultat d'un "SHOW TABLES;" pour modifier le moteur de chaque table.
Depuis le temps que vous avez posé la question pour trouver une seule requête la procédure serait codée depuis longtemps :mrgreen:
bien sur que c'est faisable... avec une procédure stockée, pas une seule requête bien sur...
tu fais un curseur qui lit information_shema.TABLES et récupère TABLE_NAME pour TABLE_SCHEMA qui sera le nom de la base que tu cherches...
dans la boucle de lecture tu mets à jour une chaine de caractères avec le nom de table récupéré et qui va faire le "alter table" nécessaire. tu utilise alors cette chaine comme initialisation d'une requête préparée...
une fois la boucle finie, tu modifies le type de moteur par défaut de la base par un requête préparée la encore...
Merci à tous les deux, je me sents un peu moins seul et je me doutais bien qu'un batch aussi simple ça tenait de normale sup.
Je vais essayer avec toad for MySQL des fois que...
Je vous tiens au jus.