在項目開發(fā)中,有時由于項目開始時候使用的數(shù)據(jù)庫是SQL Server,后來把存儲的數(shù)據(jù)庫調(diào)整為MySQL,所以需要把SQL Server的數(shù)據(jù)遷移到MySQL。下面是小編日常整理的一種sqlserver數(shù)據(jù)庫遷移的方法。
一、SQL Server中常用數(shù)據(jù)類型與MySQL不同的地方
二、將SQL Server數(shù)據(jù)遷移到MySQL需要注意的一些問題
1、唯一索引的不同,sql server的唯一索引的字段只能允許存在一個null值,而mysql,一直oracle中唯一索引對應(yīng)的字段都允許存在多個null值。
2、存儲過程的語法存在很大的不同,存儲過程的遷移是最麻煩的,需要仔細(xì)修改。
3、程序中部分寫的SQL語句由于語法的不同也要相應(yīng)的修改。
三、將SQL Server數(shù)據(jù)遷移到MySQL的常見方法
1、使用 SQLyog 遷移
優(yōu)點(diǎn)
該遷移方法很簡單,靈活,遷移時,可以進(jìn)行字段的修改,比如在sql server中原來是datetime,然后遷移到mysql時你可以配置成timestamp;成功率很高;
缺點(diǎn)
遷移很慢!這是該方法最大的缺點(diǎn),如果表的數(shù)據(jù)量達(dá)到幾十萬行,甚至幾百萬行,你會發(fā)現(xiàn)遷移起來真的很慢。明顯比其他遷移方法慢很多。
2、使用 powerdesigner 和 sql server 的腳本導(dǎo)出功能 來遷移
(1)、該方法首先使用 powerdesigner,對sql server數(shù)據(jù)庫,進(jìn)行逆向工程,得到E-R圖,然后生成MySQL的建表語句。完成數(shù)據(jù)庫結(jié)構(gòu)的遷移;當(dāng)然表結(jié)構(gòu)的遷移,不使用powerdesigner一樣也是可以的。比如我將表結(jié)構(gòu)導(dǎo)出成語句,然后手動進(jìn)行修改,然后在MySQL中運(yùn)行,也是一樣的;
(2)、然后使用 sql server的工具 SSMS,將sql server數(shù)據(jù)庫中的表的數(shù)據(jù),導(dǎo)出成insert語句,每個表對應(yīng)導(dǎo)出一個文件,然后對文件進(jìn)行一些處理,然后導(dǎo)入到MySQL數(shù)據(jù)庫中。
3、使用Oracle MySQL Server 官方的 workbeach 工具進(jìn)行遷移
(1)、在workbench 連接sql server時,用戶需要有 view any database 的權(quán)限。不然workbench無法訪問sql server的表結(jié)構(gòu)的元數(shù)據(jù),從而無法進(jìn)行遷移。
(2)、還有使用 Navicat 來進(jìn)行遷移的方法,方法和 SQLyog 是類似的。
以上sqlserver數(shù)據(jù)庫遷移方法,希望大家喜歡。
您可能感興趣的文章:- 在.NET Core類庫中使用EF Core遷移數(shù)據(jù)庫到SQL Server的方法
- sql server2008數(shù)據(jù)庫遷移的兩種方法
- 如何將Oracle的一個大數(shù)據(jù)表快速遷移到 Sqlserver2008數(shù)據(jù)庫(圖文教程)
- SQL Server數(shù)據(jù)遷移至PostgreSQL出錯的解釋以及解決方案
- 在SQL Server中遷移數(shù)據(jù)的幾種方法
- 將ACCESS數(shù)據(jù)庫遷移到SQLSERVER數(shù)據(jù)庫兩種方法(圖文詳解)
- sqlserver數(shù)據(jù)庫遷移后,孤立賬號解決辦法
- 使用SQL SERVER存儲過程實現(xiàn)歷史數(shù)據(jù)遷移方式