MySQL數(shù)據(jù)轉(zhuǎn)到達(dá)夢數(shù)據(jù)庫"目前"遇到的問題:
SET IDENTITY_INSERT 表名 ON:表示開啟對標(biāo)識列顯示值插入模式,允許對標(biāo)識列顯示值進(jìn)行手動插入數(shù)據(jù)。
SET IDENTITY_INSERT 表名 OFF:表示關(guān)閉對標(biāo)識列顯示值的插入操作,標(biāo)識列不允許手動插入顯示值。
-
插入操作
insert
,注意自增列無法賦值,例如insert into T1(id,name,age) values(1,'joker',18)
,當(dāng)id列設(shè)置自增時,達(dá)夢數(shù)據(jù)庫會報(bào)錯,無法賦值自增列- 解決方法1:
SET IDENTITY_INSERT T1 ON;
注意這個ON和OFF是成對出現(xiàn),即上述例子可以這樣寫SET IDENTITY_INSERT T1 ON; insert into T1(id,name,age) values(1,'joker',18);SET IDENTITY_INSERT T1 OFF;
- 解決方案二:插入時不傳入id
insert into T1(name,age) values('joker',18)
- 解決方法1:
-
查詢操作:遇到的較多的是
distinct
問題(可以引申到order by
等問題),達(dá)夢不允許大字段排序,distinct 出現(xiàn)在select
語句中,select查詢出的列中存在clob blob text 等類型會報(bào)錯。- 解決方案一:非必要情況下,如果可以,將表中字段類型為text的,更改為
varchar
,需要注意的是varchar
最長是8188字節(jié) - 解決方案二:確實(shí)此字段必須要超過8188字節(jié)長度,繼續(xù)用
text
,那就需要優(yōu)化SQL,在對重復(fù)結(jié)果集沒有強(qiáng)烈要求情況下,將distinct
改為all
或者直接去掉distinct
- 解決方案一:非必要情況下,如果可以,將表中字段類型為text的,更改為
【參考:達(dá)夢官方網(wǎng)站】
本文摘自 :https://www.cnblogs.com/