2017-06-29 2 views

Répondre

1

Vous pouvez utiliser

ALTER TABLE t ENGINE = InnoDB; 

Vous pouvez utiliser cette requête. Si DB moteur déjà InnoDB alors rien ne se passera. sortie sera

MySQL returned an empty result set (i.e. zero rows) 

si le moteur pas InnoDB, il sera converti en InnoDB.

1

La commande n'a aucun effet si la table est déjà activée InnoDB.

Vous pouvez interroger le moteur de table à partir information_schema:

SELECT `ENGINE` from `information_schema`.`TABLES` 
WHERE `TABLE_SCHEMA`='my_schema' AND `TABLE_NAME`='table1'; 
0

http://mysql.rjweb.org/doc.php/myisam2innodb#generating_alters fournit quelques conseils sur la conversion de MyISAM à InnoDB, y compris:

Pour générer tous les ALTERs pour convertir toutes les tables MyISAM à InnoDB :

SELECT CONCAT('USE ', table_schema, '; ALTER TABLE ', table_name, ' ENGINE=InnoDB;') 
    FROM information_schema.tables 
    WHERE engine = 'MyISAM' 
     AND table_schema NOT IN ('mysql', 'information_schema', 'performance_schema'); 

Puis copiez et collez la sortie dans l'outil de ligne de commande mysql.