如何把sqlserver數(shù)據(jù)遷移到mysql數(shù)據(jù)庫(kù)及需要注意事項(xiàng)
在項(xiàng)目開(kāi)發(fā)中,有時(shí)由于項(xiàng)目開(kāi)始時(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ù)類(lèi)型與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、程序中部分寫(xiě)的SQL語(yǔ)句由于語(yǔ)法的不同也要相應(yīng)的修改。
三、將SQL Server數(shù)據(jù)遷移到MySQL的常見(jiàn)方法
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í),用戶(hù)需要有 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 是類(lèi)似的。
以上sqlserver數(shù)據(jù)庫(kù)遷移方法,希望大家喜歡。
相關(guān)文章
詳解DB2 sqlstate 57016 SQLCODE=-668 原因碼 "7"錯(cuò)誤的快速解決辦法
db2 sqlstate 57016,db2 57016 原因碼7錯(cuò)誤怎么解決呢?下面小編給大家?guī)?lái)了DB2 sqlstate 57016 SQLCODE=-668 原因碼 "7"錯(cuò)誤的快速解決辦法,一起看下吧2016-08-08解決連接Sql?Server時(shí)報(bào)錯(cuò):無(wú)法通過(guò)使用安全套接字層加密與SQL?Server建立安全連接
這篇文章主要給大家介紹了關(guān)于解決連接Sql?Server時(shí)報(bào)錯(cuò):無(wú)法通過(guò)使用安全套接字層加密與SQL?Server建立安全連接的相關(guān)資料,需要的朋友可以參考下2024-01-01SQL 超時(shí)解決方案 有時(shí)并不是設(shè)置問(wèn)題
SQL 超時(shí)解決方案 有時(shí)并不是設(shè)置問(wèn)題,大家可以參考下。2010-05-05Sql Server恢復(fù)數(shù)據(jù)庫(kù)和單表數(shù)據(jù)的方法小結(jié)
如果不小心把某個(gè)表的數(shù)據(jù)刪了,可以用之前的備份文件對(duì)單表進(jìn)行數(shù)據(jù)恢復(fù),所以本文給大家介紹了Sql Server恢復(fù)數(shù)據(jù)庫(kù)和單表數(shù)據(jù)的方法,需要的朋友可以參考下2024-03-03將string數(shù)組轉(zhuǎn)化為sql的in條件用sql查詢(xún)
將string數(shù)組轉(zhuǎn)化為sql的in條件就可以用sql查詢(xún)了,下面是具體是的示例,大家可以參考下2014-05-05SQL Server實(shí)現(xiàn)用觸發(fā)器捕獲DML操作的會(huì)話信息【實(shí)例】
下面小編就為大家?guī)?lái)一篇SQL Server實(shí)現(xiàn)用觸發(fā)器捕獲DML操作的會(huì)話信息【實(shí)例】。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03SQL?Server備份數(shù)據(jù)庫(kù)的完整步驟
備份是指對(duì)SQL?Server數(shù)據(jù)庫(kù)或事務(wù)日志進(jìn)行的復(fù)制,下面這篇文章主要給大家介紹了關(guān)于SQL?Server備份數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06