2010-11-21 11 views
41

Sto usando mysql e mysql workbench. Ho creato 5 tavoli con il motore innodb. Ho controllato il loro motore ed è stato innodb prima di inserire i dati in essi. Ho inserito i dati da 5 tabelle MyISAM e ora i miei tavoli innodb sono MyISAM. Non posso cambiarli Ho usato il motore alter table = innodb ma non funziona.Modifica del Table Engine in MySQL

+1

Fornisci maggiori dettagli. Come hai provato a cambiare motore? Come hai "inserito i dati da 5 tavoli MyISAM"? – zerkms

risposta

64

Dal manuale: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

Ad esempio, per convertire un tavolo per essere una tabella InnoDB, utilizzare questa dichiarazione:

ALTER TABLE t1 ENGINE = InnoDB; 

L'esito di tentare di cambiare il motore di memorizzazione di una tabella è influenzata da se il motore di archiviazione desiderato è disponibile e l'impostazione della modalità SQL NO_ENGINE_SUBSTITUTION, come descritto in Section 5.1.7, "Modalità SQL Server".

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

Quando si crea la tabella si ottiene alcun avvertimento circa il tipo motore indisponibilità?

22

Non è ovvio. Se si modifica la tabella e quindi selezionare la scheda della colonna, il widget del motore non è immediatamente visibile. Nella parte in alto a destra della finestra di modifica vedrai due chevrons rivolti verso il basso. Seleziona la freccia una volta e appariranno altri widget. Nell'angolo in alto a destra ci saranno ora i widget per lo schema e il motore.

Result

+1

Ho modificato l'immagine per mettere i puntatori e numerati 1 e 2 per mostrare la sequenza di azioni. –