2010-11-21 11 views
41

J'utilise mysql et mysql workbench. J'ai créé 5 tables avec le moteur d'innodb. J'ai vérifié leur moteur et il était innodb avant que j'insère des données dans eux. J'ai inséré des données de 5 tables MyISAM et maintenant mes tables innodb sont MyISAM. Je ne peux pas les changer. J'ai utilisé l'alter table engine = innodb mais ça ne marche pas.Changement de moteur de table dans MySQL

+1

Donnez-nous plus de détails. Comment avez-vous essayé de changer de moteur? Comment avez-vous "inséré des données de 5 tables MyISAM"? – zerkms

Répondre

64

A partir du manuel: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

Par exemple, pour convertir une table pour être une table InnoDB, utilisez cette déclaration:

ALTER TABLE t1 ENGINE = InnoDB; 

Le résultat de tenter de changer le moteur de stockage d'une table est affectée par si le moteur de stockage souhaité est disponible et le réglage du mode SQL NO_ENGINE_SUBSTITUTION, comme décrit dans Section 5.1.7, "Modes SQL du serveur".

http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html#sqlmode_no_engine_substitution

Lorsque vous créez la table ne vous obtenez aucun avertissement sur le type de moteur étant indisponible?

22

Ce n'est pas évident. Si vous modifiez la table et puis sélectionnez l'onglet colonne le widget moteur n'est pas immédiatement visible. En haut à droite de la fenêtre d'édition, vous verrez deux chevrons pointant vers le bas. Sélectionnez la flèche et d'autres widgets apparaîtront. Dans le coin supérieur droit , il y aura maintenant des widgets pour le schéma et le moteur.

Result

+1

J'ai édité l'image pour mettre des pointeurs et numérotés 1 et 2 pour montrer la séquence d'action. –

Questions connexes