2010-11-21 4 views
41

Ich verwende mysql und mysql workbench. Ich habe 5 Tische mit innodb-Engine erstellt. Ich überprüfte ihre Engine und es war innodb, bevor ich Daten in sie einfügte. Ich habe Daten aus 5 MyISAM -Tabellen eingefügt und jetzt sind meine innodb -Tabellen MyISAM. Ich kann sie nicht ändern. Ich habe die alter table engine = innodb benutzt, aber es funktioniert nicht.Ändern der Tabellen-Engine in MySQL

+1

Geben Sie uns weitere Details. Wie hast du versucht, den Motor zu wechseln? Wie haben Sie "Daten aus 5 MyISAM-Tabellen eingefügt"? – zerkms

Antwort

64

Aus dem Handbuch: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

Zum Beispiel kann eine Tabelle konvertieren eine InnoDB Tisch zu sein, verwenden Sie diese Aussage:

ALTER TABLE t1 ENGINE = InnoDB; 

Das Ergebnis des Versuchs einer Tabelle Speicher-Engine durch folgende Faktoren beeinträchtigt wird sich ändern ob die gewünschte Speicher-Engine verfügbar ist und die Einstellung des NO_ENGINE_SUBSTITUTION SQL-Modus, wie in Section 5.1.7, "Server SQL Modes" beschrieben.

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

Wenn Sie die Tabelle erstellen erhalten Sie alle Warnungen über die Motorart nicht verfügbar zu sein?

22

Es ist nicht offensichtlich. Wenn Sie die Tabelle bearbeiten und dann wählen Sie die Spaltenregisterkarte das Engine-Widget ist nicht sofort sichtbar. Oben rechts im Bearbeitungsfenster sehen Sie zwei nach unten zeigende Chevrons. Wählen Sie den Pfeil einmal und zusätzliche Widgets werden angezeigt. In der oberen rechten Ecke wird jetzt Widgets für das Schema und die Engine sein.

Result

+1

Ich habe das Bild bearbeitet, um Zeiger zu setzen und nummeriert 1 und 2, um die Reihenfolge der Aktion zu zeigen. –