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