2016-07-29 60 views
1

我們有一些客戶向我們發送mysql數據庫sql文件,其中有些時候表引擎是myISAM,在將數據導入到數據庫時或之前,我們需要將錶轉換爲InnoDB。這可能嗎?在導入時更改mysql表存儲引擎

歡呼聲, 彼得

+0

上還檢查[_caveats在轉換_](HTTPS字符: //mariadb.com/kb/en/mariadb/converting-tables-from-myisam-to-innodb/) –

回答

2

如果你足夠幸運,在Linux上

sed -i 's/engine=myisam/engine=innodb/gi' userfile.sql 

這並假定該數據本身並不包含確切的文本engine=myisam你可以把它多一點嚴謹像這樣:

sed -i 's/) ENGINE=InnoDB/) ENGINE=MyISAM/g' junk.sql 

的表創建語句如下:

CREATE TABLE `Table1` (
    `user_id` int(11) DEFAULT NULL, 
    `user_name` varchar(5) DEFAULT NULL, 
    `user_rating` int(11) DEFAULT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
/*!40101 SET character_set_client = @saved_cs_client */; 

而在sed的第二使用我們取得了它區分大小寫和它看起來也出於對)和「」在先於該引擎的關鍵詞

+0

謝謝您的支持 – zozo6015

+0

很高興爲您提供幫助 – e4c5