我們有一些客戶向我們發送mysql數據庫sql文件,其中有些時候表引擎是myISAM,在將數據導入到數據庫時或之前,我們需要將錶轉換爲InnoDB。這可能嗎?在導入時更改mysql表存儲引擎
歡呼聲, 彼得
我們有一些客戶向我們發送mysql數據庫sql文件,其中有些時候表引擎是myISAM,在將數據導入到數據庫時或之前,我們需要將錶轉換爲InnoDB。這可能嗎?在導入時更改mysql表存儲引擎
歡呼聲, 彼得
如果你足夠幸運,在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的第二使用我們取得了它區分大小寫和它看起來也出於對)和「」在先於該引擎的關鍵詞
上還檢查[_caveats在轉換_](HTTPS字符: //mariadb.com/kb/en/mariadb/converting-tables-from-myisam-to-innodb/) –