国产数据库适配-达梦(DM)

1、通用性

达梦数据库管理系统兼容多种硬件体系,可运行于X86、X64、SPARC、POWER等硬件体系之上。DM各种平台上的数据存储结构和消息通信结构完全一致,使得DM各种组件在不同的硬件平台上具有一致的使用特性。
 达梦数据库管理系统产品实现了平台无关性,支持Windows系列、各版本Linux(2.4及2.4以上内核)、Unix、Kylin、AIX、Solaris等各种主流操作系统。达梦数据库的服务器、接口程序和管理工具均可在32位/64 位版本操作系统上使用。

2、高性能

支持列存储、数据压缩、物化视图等面向联机事务分析场景的优化选项;
 通过表级行存储、列存储选项技术,在同一产品中提供对联机事务处理和联机分析处理业务场景的支持;

3、高可用

可配置数据守护系统(主备),自动快速故障恢复,具有强大的容灾处理能力。

4、跨平台

跨平台,支持主流软硬件体系(支持windows、Linux、中标麒麟、银河麒麟等操作系统),支持主流标准接口。

5、高可扩展

支持拓展软件包和多种工具,实现海量数据分析处理、数据共享集群(DSC)和无共享数据库集群(MPP)等扩展功能

与MySQL的区别

1. 创建表的时候,不支持在列的后面直接加 comment 注释,使用 COMMENT ON  IS 代替,如:
   COMMENT ON TABLE xxx IS xxxCOMMENT ON COLUMN xxx IS xxx
2. 不支持 date_sub 函数,使用 dateadd(datepart,n,date) 代替,

其中,datepart可以为:year(yy,yyyy)quarter(qq,q)month(mm,m)dayofyear(dy,y)day(dd,d)week(wk,ww)weekday(dw)hour(hh)minute(mi,n)second(ss,s), millisecond(ms)
  例子:

   select dateadd(month, -6, now());select dateadd(month, 2, now());
3. 不支持 date_format 函数,它有三种代替方法:

a: 使用 datepart 代替
语法:datepart(datepart, date),返回代表日期的指定部分的整数,
datepart可以为:year(yy,yyyy)quarter(qq,q)month(mm,m)dayofyear(dy,y)day(dd,d)week(wk,ww)weekday(dw)hour(hh)minute(mi,n)second(ss,s), millisecond(ms)
例子:

 select datepart(year, '2018-12-13 08:45:00'); --2018select datepart(month, '2018-12-13 08:45:00'); --12

b: 使用 date_part 代替
功能和 datepart 一样,写法不同,参数顺序颠倒,且都要加引号,
例子:

 select date_part('2018-12-13 08:45:00', 'year');--2018select date_part('2018-12-13 08:45:00', 'mm'); -- 12

c: 使用 extract 代替
语法:extract(dtfield from date),从日期类型date中抽取dtfield对应的值
dtfield 可以是 yearmonthdayhourminutesecond
例子:

  select extract(year from  '2018-12-13 08:45:00'); --2018select extract(month from  '2018-12-13 08:45:00'); --12
4. 不支持 substring_index 函数, 使用 substr / substring 代替,

语法:

    substr(char[,m[,n]])substring(char[from m[ for n]])
5. 不支持 group_concat 函数,使用 wm_concat 代替,

例子:

  select wm_concat(id) as idstr from persion ORDER BY id ;
6. 不支持 from_unixtime 函数,使用 round 代替

语法:

     round(date[,format])
7. 不支持 case-when-then-else ,

例如:

   select case  when id = 2 then "aaa" when id = 3 then "bbb" else "ccc" end as testfrom (select id from person) tt;
8. current_timestamp 的返回值带有时区,

例子:

     select current_timestamp(); --2018-12-17 14:34:18.433839 +08:00
9. convert(type, value) 函数,
与 mysql 的 convert 一样,但是参数是反过来的,mysql 是 convert(value, type)
10.  不支持 on duplicate key update,
     使用 merge into 代替 
11. 不支持 ignore,即 insert ignore  into
12. 不支持 replace into,
       使用 merge into 代替 
13. 不支持 if。
14.  不支持 "",只支持 ''
15. 不支持 auto_increment,
使用 identity 代替
如: identity(1, 1),从 1 开始,每次增 1 
16. 不支持 longtext 类型,
       可用 CLOB 代替。

配置参数

sf_set_system_para_value('COMPATIBLE_MODE',4,1,2); --兼容mysql,重启数据库生效
sf_set_system_para_value('GROUP_OPT_FLAG',3,1,2);--非兼容mysql情况下支持查询项不在分组函数中,重启数据库生效

这两个2选一,如果第一个没有问题,第二个就不需要执行了

sf_set_system_para_value('ENABLE_BLOB_CMP_FLAG',1,0,1);

总结

达梦数据库和 oracle 数据库比较像,如果找不到和 MySQL 对应的函数,可以看下 oracle 的相关函数。

它的使用文档可以在官网下载到。如果函数实在找不到而且项目里必须要用,可以找厂商提工单支持,他们反馈给开发,只不过周期稍微长点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/220194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法与数据结构】37、LeetCode解数独

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题也是一道困难题,难点在于如何构建数独棋盘,如何检查棋盘的合法性&#xff…

H5开发App应用程序的常见问题以及解决方案

Hello大家好,我是咕噜铁蛋,天冷记得添衣,ok话说回来H5开发成为了一种流行的方式来构建跨平台的移动应用程序。然而,在H5开发App应用程序的过程中,我们常常会遇到一些问题,这些问题可能涉及性能、兼容性、用…

人工智能_机器学习065_SVM支持向量机KKT条件_深度理解KKT条件下的损失函数求解过程_公式详细推导---人工智能工作笔记0105

之前我们已经说了KKT条件,其实就是用来解决 如何实现对,不等式条件下的,目标函数的求解问题,之前我们说的拉格朗日乘数法,是用来对 等式条件下的目标函数进行求解. KKT条件是这样做的,添加了一个阿尔法平方对吧,这个阿尔法平方肯定是大于0的,那么 可以结合下面的文章去看,也…

3、ollvm移植

github: https://github.com/obfuscator-llvm/obfuscator/tree/llvm-4.0 先复制 include Obfuscation: /home/nowind/llvm/ollvm/obfuscator/include/llvm/Transforms/Obfuscation /home/nowind/llvm/llvm-project-9.0.1/llvm/include/llvm/Transforms/Obfuscation lib Ob…

【基于Flask、MySQL和Echarts的热门游戏数据可视化平台设计与实现】

基于Flask、MySQL和Echarts的热门游戏数据可视化平台设计与实现 前言数据获取与清洗数据集数据获取数据清洗 数据分析与可视化数据分析功能可视化功能 创新点结语 前言 随着游戏产业的蓬勃发展,了解游戏销售数据对于游戏从业者和游戏爱好者都至关重要。为了更好地分…

飞致云与上海吉谛达成战略合作,获得Gitea企业版中国大陆地区独家代理权

2023年12月13日,中国领先的开源软件提供商FIT2CLOUD飞致云宣布与上海吉谛科技有限公司(以下简称为上海吉谛)正式达成战略合作,FIT2CLOUD飞致云获得上海吉谛旗下代码托管平台Gitea企业版中国大陆地区独家代理权。 Gitea项目&…

市场全局复盘 20231213

昨日回顾: SELECT TOP 10000 CODE,成交额排名,净流入排名,代码,名称,DDE大单金额,涨幅 ,主力净额,DDE大单净量,CONVERT(DATETIME, 最后封板, 120) AS 最后封板 FROM dbo.全部A股20231213_ALL WHERE 连板天 > 1AND DDE大单净量 > 0AND DDE散户数量…

文件系统理解

先前的博客我写了关于缓冲区的理解,顺便提及了在内存的文件是怎样管理的,本文就来描述在磁盘上的文件是怎么样。但要先了解了解磁盘。 在笔记本上机械磁盘被固态硬盘代替,因为固态硬盘更快,而且方便携带,机械硬盘若是受…

极狐GitLab 镜像仓库使用技巧

极狐GitLab 镜像仓库 众所周知,极狐GitLab 是一个成熟、安全的一体化 DevOps 平台,其自身内置了容器镜像仓库功能,也即极狐GitLab Container Registry,用户可以将自身需要的镜像推送至极狐GitLab 镜像仓库,而无需自建镜…

JS对象笔记

对象声明 对象也只是一种数据类型/字面值。写对象这个字面值有两种写法,一种是普通的对象,这种对象用new 构造函数(),另一种是JS内特有的json对象。这个对象是直接{}就代表对象。且也是在堆内。 对象的构成 无论是上…

道路坑洞数据集(坑洞目标检测)VOC+YOLO格式650张

路面坑洞的形成原因是由于设计、施工、养护处理不当、控制不适和受气候、环境、地质、水文等自然因素影响,以及车辆的运行和车辆超载运行导致路面破损,出现坑洞的现象。 路面坑洞的分类: (1)路面混凝土板中坑洞&…

python自动化测试实战 —— CSDN的Web页面自动化测试

软件测试专栏 感兴趣可看:软件测试专栏 自动化测试学习部分源码 python自动化测试相关知识: 【如何学习Python自动化测试】—— 自动化测试环境搭建 【如何学习python自动化测试】—— 浏览器驱动的安装 以及 如何更…

SpringBoot入门知识

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 本…

前端体系:前端应用

目录 前端体系基础 html(超文本标记语言) css(层叠样式单) javascript() 一、前端体系概述 二、前端框架 React Vue Angular 三、前端库和工具 lodash Redux Webpack 四、模块化和组件化 ES…

微软AutoGen框架:AI的新时代,你的新机遇

一、引言 在科技日新月异的今天,人工智能已经深入到我们生活的各个角落。无论是智能手机、智能家居还是自动驾驶汽车,人工智能的应用无处不在。而在这个领域中,微软AutoGen框架无疑是一颗璀璨的新星。它以其独特的创新性和实用性&#xff0c…

【网络通信原理之套接字】

目录 概念 分类 数据报套接字:使用传输层UDP协议 流套接字:使用传输层TCP协议 原始套接字 Socket编程注意事项 前言:本文主要介绍了在什么是套接字及在Java中套接字是什么,和在套接字编程的注意事项。 概念 Socket套接…

大数据技术之Hive(超级详细)

第1章 Hive入门 1.1 什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计。 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。 本质是:将HQL转化成MapReduce程序 …

WPF实现更加灵活绑定复杂Command(使用Microsoft XAML Behaviors 库)

1、安装NuGet 2、在XAML的命名空间引入&#xff1a; xmlns:i"http://schemas.microsoft.com/xaml/behaviors" 3、使用&#xff1a; <Canvas Background"Aqua"><Rectangle Stroke"Red" Width"{Binding RectModel.RectangleWidth}…

Java面向对象思想以及原理以及内存图解

文章目录 什么是面向对象面向对象和面向过程区别创建一个对象用什么运算符?面向对象实现伪代码面向对象三大特征类和对象的关系。 基础案例代码实现实例化创建car对象时car引用的内存图对象调用方法过程 成员变量和局部变量作用范围在内存中的位置 关于对象的引用关系简介相关…

Leetcode刷题笔记题解(C++):328. 奇偶链表

思路&#xff1a;遍历链表生成奇链表和偶链表&#xff0c;然后拼接两个链表生成新的链表。 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), ne…