MySQL轉到達夢數據庫【目前】遇到過問題及解決方案


MySQL數據轉到達夢數據庫"目前"遇到的問題:

SET IDENTITY_INSERT 表名 ON:表示開啟對標識列顯示值插入模式,允許對標識列顯示值進行手動插入數據。
SET IDENTITY_INSERT 表名 OFF:表示關閉對標識列顯示值的插入操作,標識列不允許手動插入顯示值。

  • 插入操作insert注意自增列無法賦值,例如 insert into T1(id,name,age) values(1,'joker',18),當id列設置自增時,達夢數據庫會報錯,無法賦值自增列

    • 解決方法1:SET IDENTITY_INSERT T1 ON;注意這個ON和OFF是成對出現,即上述例子可以這樣寫
      • SET IDENTITY_INSERT T1 ON; insert into T1(id,name,age) values(1,'joker',18);SET IDENTITY_INSERT T1 OFF;
    • 解決方案二:插入時不傳入idinsert into T1(name,age) values('joker',18)
  • 查詢操作:遇到的較多的是 distinct 問題(可以引申到order by等問題),達夢不允許大字段排序,distinct 出現在select 語句中,select查詢出的列中存在clob blob text 等類型會報錯。

    • 解決方案一:非必要情況下,如果可以,將表中字段類型為text的,更改為varchar,需要注意的是varchar最長是8188字節
    • 解決方案二:確實此字段必須要超過8188字節長度,繼續用text,那就需要優化SQL,在對重復結果集沒有強烈要求情況下,將distinct 改為 all或者直接去掉distinct

【參考:達夢官方網站


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM