web-dev-qa-db-fra.com

Changer le moteur de table dans MySQL

J'utilise mysql et mysql workbench. J'ai créé 5 tables avec le moteur innodb. J'ai vérifié leur moteur et c'était innodb avant de leur insérer des données. 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é le moteur alter table = innodb mais cela ne fonctionne pas.

46
AliBZ

Depuis le manuel: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

Par exemple, pour convertir une table en table InnoDB, utilisez cette instruction:

ALTER TABLE t1 ENGINE = InnoDB;

Le résultat de la tentative de modification du moteur de stockage d'une table dépend de la disponibilité du moteur de stockage souhaité et du paramètre de NO_ENGINE_SUBSTITUTION Mode SQL, 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 le tableau, obtenez-vous un avertissement indiquant que le type de moteur n'est pas disponible?

75
Matt Healy

Ce n'est pas évident. Si vous modifiez le tableau puis sélectionnez l'onglet de 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 une fois et des widgets supplémentaires apparaîtront. Dans le coin supérieur droit , il y aura désormais des widgets pour le schéma et le moteur.

Result

23
ClearCrescendo