2017-06-29 41 views

回答

1

您可以使用

ALTER TABLE t ENGINE = InnoDB; 

您可以使用此查詢。如果db引擎已經是InnoDB,那麼什麼都不會發生。 輸出將被

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

如果引擎沒有InnoDB的,那麼它會轉換爲InnoDB的。

1

該命令沒有影響,如果該表已經在InnoDB

您可以從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提供了有關從MyISAM數據轉換爲InnoDB的,包括幾個小竅門:

要生成所有的改變把所有的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'); 

然後複製並粘貼到輸出mysql的命令行工具。