當(dāng)前位置:首頁(yè) > IT技術(shù) > 數(shù)據(jù)庫(kù) > 正文

MySQL轉(zhuǎn)到達(dá)夢(mèng)數(shù)據(jù)庫(kù)【目前】遇到過(guò)問(wèn)題及解決方案
2021-10-13 21:49:56

MySQL數(shù)據(jù)轉(zhuǎn)到達(dá)夢(mèng)數(shù)據(jù)庫(kù)"目前"遇到的問(wèn)題:

SET IDENTITY_INSERT 表名 ON:表示開(kāi)啟對(duì)標(biāo)識(shí)列顯示值插入模式,允許對(duì)標(biāo)識(shí)列顯示值進(jìn)行手動(dòng)插入數(shù)據(jù)。
SET IDENTITY_INSERT 表名 OFF:表示關(guān)閉對(duì)標(biāo)識(shí)列顯示值的插入操作,標(biāo)識(shí)列不允許手動(dòng)插入顯示值。

  • 插入操作insert,注意自增列無(wú)法賦值,例如 insert into T1(id,name,age) values(1,'joker',18),當(dāng)id列設(shè)置自增時(shí),達(dá)夢(mèng)數(shù)據(jù)庫(kù)會(huì)報(bào)錯(cuò),無(wú)法賦值自增列

    • 解決方法1:SET IDENTITY_INSERT T1 ON;注意這個(gè)ON和OFF是成對(duì)出現(xiàn),即上述例子可以這樣寫(xiě)
      • SET IDENTITY_INSERT T1 ON; insert into T1(id,name,age) values(1,'joker',18);SET IDENTITY_INSERT T1 OFF;
    • 解決方案二:插入時(shí)不傳入idinsert into T1(name,age) values('joker',18)
  • 查詢(xún)操作:遇到的較多的是 distinct 問(wèn)題(可以引申到order by等問(wèn)題),達(dá)夢(mèng)不允許大字段排序,distinct 出現(xiàn)在select 語(yǔ)句中,select查詢(xún)出的列中存在clob blob text 等類(lèi)型會(huì)報(bào)錯(cuò)。

    • 解決方案一:非必要情況下,如果可以,將表中字段類(lèi)型為text的,更改為varchar,需要注意的是varchar最長(zhǎng)是8188字節(jié)
    • 解決方案二:確實(shí)此字段必須要超過(guò)8188字節(jié)長(zhǎng)度,繼續(xù)用text,那就需要優(yōu)化SQL,在對(duì)重復(fù)結(jié)果集沒(méi)有強(qiáng)烈要求情況下,將distinct 改為 all或者直接去掉distinct

【參考:達(dá)夢(mèng)官方網(wǎng)站

本文摘自 :https://www.cnblogs.com/

開(kāi)通會(huì)員,享受整站包年服務(wù)立即開(kāi)通 >