如何把sqlserver數(shù)據(jù)遷移到mysql數(shù)據(jù)庫及需要注意事項(xiàng)
在項(xiàng)目開發(fā)中,有時由于項(xiàng)目開始時候使用的數(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ù)庫遷移方法,希望大家喜歡。
相關(guān)文章
跨數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)交流
這篇文章主要介紹了跨數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)交流的兩種方式,一是通過鏈接服務(wù)器,二是使用OPENDATASOURCE/OPENROWSET連接遠(yuǎn)程服務(wù)器,需要的朋友可以參考下2015-08-08
Navicat連接SQL Server數(shù)據(jù):報錯08001-命名管道提供程序的完美解決方法
小編新安裝了sqlserver用navicat進(jìn)行連接時出現(xiàn)一系列問題,不知道該怎么解決,小編小編給大家分享一篇教程關(guān)于Navicat連接SQL Server數(shù)據(jù):報錯08001-命名管道提供程序的問題,感興趣的朋友一起看看吧2021-08-08
SQLServer只賦予創(chuàng)建表權(quán)限的全過程
在SQL Server中進(jìn)行各種操作是非常常見的操作,下面這篇文章主要給大家介紹了關(guān)于SQLServer只賦予創(chuàng)建表權(quán)限的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
查詢SQL Server Index上次Rebuild時間的方法
這篇文章主要介紹了查詢SQL Server Index上次Rebuild時間的方法,本文直接給出實(shí)現(xiàn)腳本代碼,需要的朋友可以參考下2015-07-07
為數(shù)據(jù)庫生成某個字段充填隨機(jī)數(shù)的存儲過程
為數(shù)據(jù)庫生成某個字段充填隨機(jī)數(shù)2010-05-05
在sqlserver中如何使用CTE解決復(fù)雜查詢問題
本文給大家介紹使用cte解決復(fù)雜查詢問題,在此代碼中需要注意count函數(shù),它統(tǒng)計了一個列,如果該列在某行的值為null,將不會統(tǒng)計該行,本文代碼詳解并附有注釋,感興趣的朋友一起看看吧2015-11-11
SQL Server中將數(shù)據(jù)導(dǎo)出為XML和Json方法分享
這篇文章主要介紹了SQL Server中將數(shù)據(jù)導(dǎo)出為XML和Json方法分享,本文使用PowerShell中的BCP命令實(shí)現(xiàn)導(dǎo)出為文件,需要的朋友可以參考下2015-02-02
詳解安裝sql2012出現(xiàn)錯誤could not open key...解決辦法
這篇文章主要介紹了詳解安裝sql2012出現(xiàn)錯誤could not open key...解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11

