天天看點

[PowerDesign]将資料庫從SQL Server資料庫轉換為MySQL

一、遷移Database Schema。

首先使用Sybase Powerdesigner的逆向工程功能,逆向出SQL Server資料庫的實體模型。具體操作是在Powerdesigner中選擇“File”,“Reverse Engine”再選擇Database,将DBMS選擇為SQL Server,如圖:

[PowerDesign]将資料庫從SQL Server資料庫轉換為MySQL

然後選擇資料源,也就是要具體連接配接到的SQL Server資料庫伺服器,然後選擇要逆向的資料庫名,比如選中“WSS_Content_80”如圖所示:

[PowerDesign]将資料庫從SQL Server資料庫轉換為MySQL

單擊确定即可生成實體模型圖:

[PowerDesign]将資料庫從SQL Server資料庫轉換為MySQL

然後單擊“Database”菜單下的Change Current DBMS修改目前的DBMS,改為MySQL 5.0,

[PowerDesign]将資料庫從SQL Server資料庫轉換為MySQL

單擊确定後即可生成MySQL的實體模型 然後單擊“Database”菜單下的“Generate Database”生成資料庫腳本檔案。

接下來是手工修改下生成的腳本的内容。

将其中的dbo.全部替換成空

将create user這樣的語句删除掉。

如果有些字元在MySQL中是關鍵字,那麼必須使用“`”(鍵盤上數字1左邊那個符合)符合框起來。

加上MySQL所需要的存儲引擎比如每個建表語句後跟上:

ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;

将生成的腳本在MySQL中去運作一次即可建立資料庫。

二、遷移資料内容

資料内容隻能通過生成INSERT語句的方式來做。

首先使用SSMS的“生成腳本”功能(在資料庫上右鍵,選擇“任務”“生成腳本”選項),可以為SQL Server資料庫中的資料生成插入腳本。

首先選擇要遷移資料的表,這裡我們全選所有的表:

[PowerDesign]将資料庫從SQL Server資料庫轉換為MySQL

然後單擊下一步,選擇将腳本儲存到新的查詢視窗:

[PowerDesign]将資料庫從SQL Server資料庫轉換為MySQL

單擊“進階”選項,在進階選項視窗中選擇“要編寫腳本的資料的類型”為僅限資料:

[PowerDesign]将資料庫從SQL Server資料庫轉換為MySQL

然後“确定”再下一步下一步即可生成INSERT腳本檔案。

修改生成的腳本檔案,主要有以下幾項修改:

使用批量替換的方式去掉[ ]這是SQL Server的符合,在MySQL中不用這個。

使用批量替換的方式去掉dbo.

有些單詞在MySQL中是關鍵字的,那麼需要使用“`”引起來。

關于Datetime類型的資料,需要手工修改下,SQL Server預設生成的是這樣的語句,在MySQL中是沒辦法解析的:

CAST(0x00009EEF00000000 AS DateTime)

為每一行添加一個;表示一個插入語句結束。這個分号在SQL Server中可以不需要,但是在MySQL中是必須的。簡單的方法是使用進階的文本編輯器(比如Notepad++),将\r\n替換為;\r\n即可。