我們?cè)谧鲰?xiàng)目開發(fā)的時(shí)候使用的是SQL Server數(shù)據(jù)庫,但是我們要將存儲(chǔ)的數(shù)據(jù)庫調(diào)整為MySQL又該怎么辦呢?那么下面我們就一起去看看把sqlserver數(shù)據(jù)遷移到mysql數(shù)據(jù)庫的技巧。 一、SQL Server中常用數(shù)據(jù)類型與MySQL不同的地方二、將SQL Server數(shù)據(jù)遷移到MySQL需要注意的一些問題1、唯一索引的不同,sql server的唯一索引的字段只能允許存在一個(gè)null值,而mysql,一直oracle中唯一索引對(duì)應(yīng)的字段都允許存在多個(gè)null值。 2、存儲(chǔ)過程的語法存在很大的不同,存儲(chǔ)過程的遷移是最麻煩的,需要仔細(xì)修改。 3、程序中部分寫的SQL語句由于語法的不同也要相應(yīng)的修改。 三、將SQL Server數(shù)據(jù)遷移到MySQL的常見方法1、使用 SQLyog 遷移 優(yōu)點(diǎn) 該遷移方法很簡單,靈活,遷移時(shí),可以進(jìn)行字段的修改,比如在sql server中原來是datetime,然后遷移到mysql時(shí)你可以配置成timestamp;成功率很高; 缺點(diǎn) 遷移很慢!這是該方法最大的缺點(diǎn),如果表的數(shù)據(jù)量達(dá)到幾十萬行,甚至幾百萬行,你會(huì)發(fā)現(xiàn)遷移起來真的很慢。明顯比其他遷移方法慢很多。 2、使用 powerdesigner 和 sql server 的腳本導(dǎo)出功能 來遷移 (1)、該方法首先使用 powerdesigner,對(duì)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)出成語句,然后手動(dòng)進(jìn)行修改,然后在MySQL中運(yùn)行,也是一樣的; (2)、然后使用 sql server的工具 SSMS,將sql server數(shù)據(jù)庫中的表的數(shù)據(jù),導(dǎo)出成insert語句,每個(gè)表對(duì)應(yīng)導(dǎo)出一個(gè)文件,然后對(duì)文件進(jìn)行一些處理,然后導(dǎo)入到MySQL數(shù)據(jù)庫中。 3、使用Oracle MySQL Server 官方的 workbeach 工具進(jìn)行遷移 (1)、在workbench 連接sql server時(shí),用戶需要有 view any database 的權(quán)限。不然workbench無法訪問sql server的表結(jié)構(gòu)的元數(shù)據(jù),從而無法進(jìn)行遷移。 (2)、還有使用 Navicat 來進(jìn)行遷移的方法,方法和 SQLyog 是類似的。 另外如果你想更好的提升你的編程能力,學(xué)好C語言C++編程!彎道超車,快人一步!筆者這里或許可以幫到你~ UP在主頁上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~ 分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程) 歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦! 免費(fèi)學(xué)習(xí)資料: |
|