溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

數(shù)據(jù)庫從mssql遷移mysql的操作方法

發(fā)布時間:2020-10-27 13:37:02 來源:億速云 閱讀:403 作者:小新 欄目:編程語言

小編給大家分享一下數(shù)據(jù)庫從mssql遷移mysql的操作方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

作為系統(tǒng)開發(fā)最常見的兩種后臺數(shù)據(jù)庫,名字上都有著細(xì)微的差別,所以在實際的使用上,也是不一樣的,今天針對這部分,帶大家走進(jìn)了解這部分內(nèi)容。

支持?jǐn)?shù)據(jù)類型的差別

1、MySQL支持enum、set類型,MSSQL不支持。
2、MySQL不支持nchar、nvarchar、ntext類型。
3、MySQL的遞增字段類型是AUTO_INCREMENT,而MSSQL是identity(1,1)。
4、MySQL不支持默認(rèn)值為當(dāng)前時間的datetime類型(MSSQL很容易做到),在MySQL里面 是用timestamp類型。
5、MySQL支持無符號型的整數(shù),理論上比不支持無符號型的MSSQL多出一倍的最大數(shù)存儲。
6、MySQL不支持在MSSQL里面使用非常方便的varchar(max)類型,這個類型在MSSQL里面既可做一般數(shù)據(jù)存儲,也可以做blob數(shù)據(jù)存儲。

常見符號的差別

1、MSSQL識別符是[],[type]表示他區(qū)別于關(guān)鍵字,但是MySQL卻是 `,也就是按鍵1左邊的那個符號。
2、MSSQL默認(rèn)到處表創(chuàng)建語句的默認(rèn)值表示是((0)),而在MySQL里面是不允許帶兩括號。
3、MSSQL定義變量一定要用@開頭,而MySQL沒這種要求。
4、MSSQL每條語句結(jié)束可以用“;”、GO或什么都不要,MySQL的每句結(jié)束要用“;”。
5、MySQL的輸出參數(shù)out對應(yīng)SQLServer的output,且MySQL的out要放在變量的前面,MSSQL的output放在變量后面。

常用函數(shù)差別

1、MSSQL支持getdate()方法獲取當(dāng)前時間日期,但是MySQL里面可以分日期類型和時間類型,獲取當(dāng)前日期是current_date (),當(dāng)前完整時間是 now()函數(shù)。
2、MySQL的ifnull()函數(shù)對應(yīng)MSSQL的isnull()函數(shù)。
3、MySQL的uuid()對應(yīng)MSSQL的GUID()。
4、MySQL字符串連接用concat()函數(shù),MSSQL只需要用“+”加號。

SQLServer中
set @str=?select * from ?+?tablename?+…+… 、
MySQL中
str=concat(?select * from?, ?tablecname?,…,…)

5、MySQL的Execute對應(yīng)MSSQL的exec。
6、MySQL存儲過程中沒有return函數(shù)。

SQL語句語法常見差別

1、MSSQL不支持replace into 語句,但從SQLServer 2008開始支持merge語法。

2、MySQL支持:

insert into table1 set t1 = ??, t2 = ?? ;

MSSQL不支持這樣寫。

3、MySQL支持:

insert into tabl1 values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1);

SQLServer 2008之后也開始支持。

4、MSSQL里面檢查是否有這個表再刪除,需要這樣:

if exists (select * from dbo.sysobjects where id = object_id(N'表名') and OBJECTPROPERTY(id,N'IsUserTable')=1)

但是在MySQL里面只需要DROP TABLE IF EXISTS 表名

5、MySQL創(chuàng)建非聚集索引只需要在創(chuàng)建表的時候指定為key就行,比如:

KEY xxx (fid,xxx)

在MSSQL里面必須要:

create unique nonclustered index index_xxx on dbo.xxx (field1 asc,field2 asc);

6、MySQL的If語句與MSSQL有較大區(qū)別,MySQL寫法如下:

If (條件) Then 語句 end If;
If (條件) Then 語句 Else 語句 End If;
If (條件) Then 語句 Elseif (注意不能寫成 Else if ) 語句 Elseif … End If;

7、從SQL語句中獲取字段值到變量寫法不同。

MSSQL寫法:

select @a=count() from 表名;
MySQL寫法:
select count() from 表名 into @a;

8、MySQL中沒有top關(guān)鍵字,需要用limit代替且放在后面。

表創(chuàng)建相關(guān)

1、MySQL需要為表指定存儲類型。

2、MySQL在創(chuàng)建表時要為每個表指定一個存儲引擎類型,而MS SQL只支持一種存儲引擎。

3、MySQL的一個表的總共字段長度不超過65XXX。

性能及管理工具

1、同樣的負(fù)載壓力,MySQL要消耗更少的CPU和內(nèi)存,MSSQL的確是很耗資源。

2、MySQL的管理管理使用收費的第三方工具諸如Navicat尚可,MSSQL提供的管理工具免費而且功能非常強大。

以上是數(shù)據(jù)庫從mssql遷移mysql的操作方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI