mssql轉(zhuǎn)換為MySQL數(shù)據(jù)庫(kù)經(jīng)驗(yàn)漫談
近在做關(guān)于mssql轉(zhuǎn)換為MySQL數(shù)據(jù)庫(kù)的工作,在實(shí)際操作中總結(jié)了一些經(jīng)驗(yàn),今天拿出來(lái)跟大家分享一下。同時(shí)也希望這些也會(huì)在不斷更新。望大家借鑒,希望會(huì)給你帶來(lái)一些幫助在此方面。
1 MySQL支持enum,和set類型,sql server不支持
2 MySQL不支持nchar,nvarchar,ntext類型
3 MySQL的遞增語(yǔ)句是AUTO_INCREMENT,而mssql是identity(1,1)
4 msms默認(rèn)到處表創(chuàng)建語(yǔ)句的默認(rèn)值表示是((0)),而在MySQL數(shù)據(jù)庫(kù)里面是不允許帶兩括號(hào)的
5 MySQL需要為表指定存儲(chǔ)類型
6 mssql識(shí)別符是[],[type]表示他區(qū)別于關(guān)鍵字,但是MySQL卻是 `,也就是按鍵1左邊的那個(gè)符號(hào)
7 mssql支持getdate()方法獲取當(dāng)前時(shí)間日期,但是MySQL里面可以分日期類型和時(shí)間類型,獲取當(dāng)前日期是cur_date(),當(dāng)前完整時(shí)間是 now()函數(shù)
8 mssql不支持replace into 語(yǔ)句,但是在最新的sql20008里面,也支持merge語(yǔ)法
9 MySQL支持insert into table1 set t1 = ‘’, t2 = ‘’ ,但是mssql不支持這樣寫
10 MySQL支持insert into tabl1 values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1)
11 mssql不支持limit語(yǔ)句,是非常遺憾的,只能用top 取代limt 0,N,row_number() over()函數(shù)取代limit N,M
12 MySQL在創(chuàng)建表時(shí)要為每個(gè)表指定一個(gè)存儲(chǔ)引擎類型,而mssql只支持一種存儲(chǔ)引擎
13 MySQL不支持默認(rèn)值為當(dāng)前時(shí)間的datetime類型(mssql很容易做到),在MySQL數(shù)據(jù)庫(kù)里面是用timestamp類型
14 mssql里面檢查是否有這個(gè)表再刪除,需要這樣:
if exists (select * from dbo.sysobjects where id = object_id(N'uc_newpm') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
但是在MySQL里面只需要 DROP TABLE IF EXISTS cdb_forums;
15 MySQL支持無(wú)符號(hào)型的整數(shù),那么比不支持無(wú)符號(hào)型的mssql就能多出一倍的最大數(shù)存儲(chǔ)
16 MySQL不支持在mssql里面使用非常方便的varchar(max)類型,這個(gè)類型在mssql里面既可做一般數(shù)據(jù)存儲(chǔ),也可以做blob數(shù)據(jù)存儲(chǔ)
17 MySQL創(chuàng)建非聚集索引只需要在創(chuàng)建表的時(shí)候指定為key就行,比如:KEY displayorder (fid,displayorder) 在mssql里面必須要:create unique nonclustered index index_uc_protectedmembers_username_appid on dbo.uc_protectedmembers
(username asc,appid asc)
18 MySQL text字段類型不允許有默認(rèn)值
19MySQL的一個(gè)表的總共字段長(zhǎng)度不超過(guò)65XXX。
20一個(gè)很表面的區(qū)別就是MySQL數(shù)據(jù)庫(kù)的安裝特別簡(jiǎn)單,而且文件大小才110M(非安裝版),相比微軟這個(gè)龐然大物,安裝進(jìn)度來(lái)說(shuō)簡(jiǎn)直就是.....
21MySQL的管理工具有幾個(gè)比較好的,MySQL_front,和官方那個(gè)套件,不過(guò)都沒有SSMS的使用方便,這是MySQL很大的一個(gè)缺點(diǎn)。
22MySQL的存儲(chǔ)過(guò)程只是出現(xiàn)在最新的版本中,穩(wěn)定性和性能可能不如mssql。
23 同樣的負(fù)載壓力,MySQL要消耗更少的CPU和內(nèi)存,mssql的確是很耗資源。
24php連接MySQL和mssql的方式都差不多,只需要將函數(shù)的MySQL替換成mssql即可。
25MySQL數(shù)據(jù)庫(kù)支持date,time,year類型,mssql到2008才支持date和time。
【編輯推薦】