日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据迁移到teradata_Mysql迁移到达梦数据库-Mysql到DM的应用迁移-给自增列赋值-GroupBy语法不兼容...

發(fā)布時間:2025/3/21 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据迁移到teradata_Mysql迁移到达梦数据库-Mysql到DM的应用迁移-给自增列赋值-GroupBy语法不兼容... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

現(xiàn)象描述

把基于Mysql

的應(yīng)用移植到達(dá)夢數(shù)據(jù)庫,我們進(jìn)程碰到下面兩個問題。

場景一:

在完成了數(shù)據(jù)和應(yīng)用系統(tǒng)的移植后,應(yīng)用一啟動,看到日志框框報(bào)錯:無法給自增列賦值。

【僅當(dāng)指定列列表,且 SET_IDENTITY_INSERT

為ON

時,才能對自增列賦值】

場景二:

SQL

寫法不支持,應(yīng)用執(zhí)行遇到報(bào)錯:【無效的ORDER BY

字句】【不是GROUP BY

表達(dá)式】

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

表達(dá)式

處理方法

這是Mysql

遷移到達(dá)夢數(shù)據(jù)庫,需要知道的基礎(chǔ)知識點(diǎn)第二篇:總結(jié)三句話。

-

達(dá)夢數(shù)據(jù)庫和Oracle

一樣,無法直接對自增列賦值,Mysql

的自增列語法,建議改成取序列值,依然可以保持default

屬性。

-

達(dá)夢數(shù)據(jù)庫對Mysql

的不符合SQL

標(biāo)準(zhǔn)的Group

和Order

,已經(jīng)提供了兼容,但是要修改數(shù)據(jù)庫配置文件COMPATIBLE_MODE

為4

。

怎么設(shè)置可以賦值的自增列屬性

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

下面是Mysql5.6

的自增列插入例子:

下面是DM

(或者Oracle

)上,通過序列值默認(rèn)值替換自增列的一個例子【注意:并不完全等價】:

怎么修改COMPATIBLE_MODE

為4

登錄數(shù)據(jù)庫,執(zhí)行這個SQL:? sp_set_para_value(2,'COMPATIBLE_MODE',4);

執(zhí)行成功后,重啟數(shù)據(jù)庫即可。

修改為4

后,關(guān)于group

和order

之前不兼容的語法報(bào)錯,就會變得正常,下面是一個簡單的例子:

--

當(dāng)兼容模式為4

時,也就是執(zhí)行了sp_set_para_value(2,'COMPATIBLE_MODE',4);

后,并重啟了達(dá)夢數(shù)據(jù)庫服務(wù)之后

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

--

但是當(dāng)該參數(shù)是0

的時候,兩個目標(biāo)語句,均報(bào)錯

-- 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

表達(dá)式

COMPATIBLE_MODE

默認(rèn)值為 0

靜態(tài)參數(shù)

是否兼容其他數(shù)據(jù)庫模式。 0

:不兼容, 1

:兼容 SQL92

標(biāo)準(zhǔn), 2

部分兼容 ORACLE

, 3

部分兼容 MS SQL SERVER

, 4

部分兼容 MYSQL

,5

:兼容 DM6

, 6

部分兼容 TERADATA

總結(jié)

以上是生活随笔為你收集整理的mysql数据迁移到teradata_Mysql迁移到达梦数据库-Mysql到DM的应用迁移-给自增列赋值-GroupBy语法不兼容...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。