91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 數據庫 > 
  • Mysql遷移到達夢數據庫-Mysql到DM的應用遷移-給自增列賦值-GroupBy語法不兼容

Mysql遷移到達夢數據庫-Mysql到DM的應用遷移-給自增列賦值-GroupBy語法不兼容

發布時間:2020-08-10 22:17:52 來源:ITPUB博客 閱讀:931 作者:yanhengdoudou 欄目:數據庫

現象描述

把基于Mysql 的應用移植到達夢數據庫,我們進程碰到下面兩個問題。

場景一:

在完成了數據和應用系統的移植后,應用一啟動,看到日志框框報錯:無法給自增列賦值。

【僅當指定列列表,且 SET_IDENTITY_INSERT ON 時,才能對自增列賦值】

  Mysql遷移到達夢數據庫-Mysql到DM的應用遷移-給自增列賦值-GroupBy語法不兼容

場景二:

SQL 寫法不支持,應用執行遇到報錯:【無效的ORDER BY 字句】【不是GROUP BY 表達式】

select v1 from test group by v1 order by v2;--err 無效的ORDER BY 子句

select v1,v2 from test group by v1 order by v2; --err 不是 GROUP BY 表達式

處理方法

這是Mysql 遷移到達夢數據庫,需要知道的基礎知識點第二篇:總結三句話。

-           達夢數據庫和Oracle 一樣,無法直接對自增列賦值,Mysql 的自增列語法,建議改成取序列值,依然可以保持default 屬性。

-           達夢數據庫對Mysql 的不符合SQL 標準的Group Order ,已經提供了兼容,但是要修改數據庫配置文件COMPATIBLE_MODE 4

怎么設置可以賦值的自增列屬性

我們可以用序列作為默認值,來實現自增列的可插入性,但是要注意,業務邏輯并不等價,需要自己考量。(注:本來給自增列賦值這個特性,是用的不太合理的)

下面是Mysql5.6 的自增列插入例子:

  Mysql遷移到達夢數據庫-Mysql到DM的應用遷移-給自增列賦值-GroupBy語法不兼容

下面是DM (或者Oracle )上,通過序列值默認值替換自增列的一個例子【注意:并不完全等價】:

  Mysql遷移到達夢數據庫-Mysql到DM的應用遷移-給自增列賦值-GroupBy語法不兼容

怎么修改COMPATIBLE_MODE 4

登錄數據庫,執行這個SQL:  sp_set_para_value(2,'COMPATIBLE_MODE',4);

執行成功后,重啟數據庫即可。

修改為4 后,關于group order 之前不兼容的語法報錯,就會變得正常,下面是一個簡單的例子:

-- 當兼容模式為4 時,也就是執行了sp_set_para_value(2,'COMPATIBLE_MODE',4); 后,并重啟了達夢數據庫服務之后

drop table  if exists test;

create table test(v1 int,v2 int,v3 int);

insert into test select level,level,level from dual connect by level<=100;

select v1 from test group by v1 order by v2;--ok

select v1,v2 from test group by v1 order by v2; --ok

-- 但是當該參數是0 的時候,兩個目標語句,均報錯

-- modify COMPATIBLE_MODE 0

select v1 from test group by v1 order by v2;--err 無效的ORDER BY 子句

select v1,v2 from test group by v1 order by v2; --err 不是 GROUP BY 表達式

COMPATIBLE_MODE  默認值為 0   靜態參數

是否兼容其他數據庫模式。 0 :不兼容, 1 :兼容 SQL92 標準, 2 部分兼容 ORACLE 3 部分兼容 MS SQL SERVER 4 部分兼容 MYSQL 5 :兼容 DM6 6   部分兼容 TERADATA

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

衡阳市| 剑河县| 克拉玛依市| 介休市| 始兴县| 自贡市| 黄石市| 桦甸市| 翁牛特旗| 云阳县| 得荣县| 白水县| 高州市| 新乐市| 堆龙德庆县| 资中县| 广平县| 亳州市| 沿河| 霞浦县| 陕西省| 乌审旗| 镇远县| 白河县| 禄丰县| 陵川县| 资阳市| 江源县| 东至县| 滕州市| 仁化县| 中山市| 鄢陵县| 灵璧县| 湘西| 泾阳县| 尼木县| 焦作市| 怀远县| 崇文区| 三穗县|