簡體   English   中英

導入時更改mysql表存儲引擎

[英]change mysql table storage engine upon import

我們有一些客戶向我們發送mysql數據庫sql文件,其中有時表引擎是myISAM,並且在將其導入到數據庫中的時間或之前,我們需要將表轉換為InnoDB。 這可能嗎?

歡呼聲,彼得

如果您足夠幸運,可以在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的第二種用法中,我們使它區分大小寫,並且還會查找ENGINE關鍵字之前的)和''字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM