iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >【DM】达梦数据库与MySQL适配
  • 280
分享到

【DM】达梦数据库与MySQL适配

数据库mysqlsql 2023-08-18 07:08:12 280人浏览 独家记忆
摘要

一、达梦入门技术文档 新手直接看达梦入门技术文档即可 二、达梦数据库 1、介绍 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM,它具有如下特点:通用性、高性能、高可用、跨平台、高可扩展 2、与

一、达梦入门技术文档

新手直接看达梦入门技术文档即可

在这里插入图片描述

二、达梦数据库

1、介绍

达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM,它具有如下特点:通用性、高性能、高可用、跨平台、高可扩展

2、与Mysql的区别

(1)创建表的时候,不支持在列的后面直接加comment注释,使用 COMMENT ON IS 代替,如:

   COMMENT ON TABLE xxx IS xxx   COMMENT 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, '2023-04-13 08:45:00'); --2023select datepart(month, '2022-12-13 08:45:00'); --12

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

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

C: 使用 extract 代替,语法:extract(dtfield from date),从日期类型date中抽取dtfield对应的值,dtfield 可以是 year,month,day,hour,minute,second,例子:

select extract(year from  '2023-12-13 08:45:00'); --2023select extract(month from  '2022-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 test from (select id from person) tt;

(8)current_timestamp 的返回值带有时区,例子:

select current_timestamp();2023-04-37 14:34:18.433839 +08:00

3、数据迁移

三、JAVA项目连接DM数据库

1、引入依赖

com.dameng    Dm8JdbcDriver18    8.1.1.49

2、Nacos中配置

在这里插入图片描述

四、mysql转达梦sql注意事项

1、``不可以用

`type` 需要去掉``

2、达梦数据库错误代码-4080:不是 GROUP BY 表达式

1、GROUP BY 和 ORDER BY 一起使用时,ORDER BY 要在 GROUP BY 的后面。2、在 select 需要查询的语句中选中的字段,必须出现在 GROUP BY 子句中
使用 GROUP BY 要注意以下问题:1.在 GROUP BY 子句中的每一列必须明确地命名属于在 FROM 子句中命名的表的一列。分组列的数据类型不能是多媒体数据类型;2.分组列不能为集函数表达式或者在 SELECT 子句中定义的别名;3.当分组列值包含空值时,则空值作为一个独立组;4.当分组列包含多个列名时,则按照 GROUP BY 子句中列出现的顺序进行分组;5. GROUP BY 子句中至多可包含 255 个分组列; 6. ROLLUP\CUBE\GROUPING SETS 组合不能超过 9 个。

3、达梦数据库报错「-2106」:无效的表或视图名

确认程序连接达梦的用户名,确认该用户是否有select这张表的权限;
2、检查这张表的所属模式,如果模式名与用户名相同,可以用select * from 表名;如果模式名与用户名不同,需要使用 select * from 模式名.表名; 的语法。
3、nacos中url使用schema指定模式:

注意:模式不可以使用-连字符,最好使用下划线

在这里插入图片描述

4、DATE_SUB函数

expr 在达梦中需要加单引号,建议使用到这类函数时数字加上单引号。

count(YEAR(create_time) = YEAR(DATE_SUB(NOW(),INTERVAL 1 YEAR)) OR NULL) as lastYearNum改为:count(YEAR(create_time) = YEAR(DATE_SUB(NOW(),INTERVAL '1' YEAR)) OR NULL) as lastYearNum

5、SUM 的参数必须为数值类型,这里做了逻辑运算就不是数值了。

在这里插入图片描述

6、yearweek 函数

达梦数据库没有 yearweek ,使用 year 函数 week 函数 结合

select yearweek('2022-01-01'); //mysql写法select concat(year('2022-01-01'), week('2022-01-01'));//达梦写法

7、count中进行比较,导致错误

在这里插入图片描述
如何修改:使用sum即可
在这里插入图片描述

8、迁移报错

在这里插入图片描述

解决方案:迁移外键的时候,取消“保留引用表原有的模式信息”功能,选择迁移对象->点击转换

在这里插入图片描述

9、MySQL 的ON DUPLICATE KEY UPDATE语句在达梦数据库中使用的方式

10、无法解析的成员访问表达式[UUID]

在这里插入图片描述
解决方案:
1、在imp业务层设置了uuid
2、在 DM 数据库中可以使用以下两种方法生成 UUID:

使用 SYS_GUID() 函数生成 UUID,该函数返回一个唯一标识符,可以作为列的默认值或者手动插入。
代码示例:

CREATE TABLE your_table (  id VARCHAR2(40) DEFAULT SYS_GUID() PRIMARY KEY,  ...);

使用 rawtohex(sys_guid()) 函数将 UUID 转换为字符串,然后插入表中。
代码示例:

INSERT INTO your_table (id, ...) VALUES (rawtohex(sys_guid()), ...);

注意,使用第二种方法时,需要将 UUID 转换为字符串,因为 DM 数据库中没有原生的 UUID 类型。

11、Activiti7.X支持达梦数据库

注意事项持续更新中…

在这里插入图片描述

来源地址:https://blog.csdn.net/javaScript1997/article/details/130360680

您可能感兴趣的文档:

--结束END--

本文标题: 【DM】达梦数据库与MySQL适配

本文链接: https://www.lsjlt.com/news/373707.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【DM】达梦数据库与MySQL适配
    一、达梦入门技术文档 新手直接看达梦入门技术文档即可 二、达梦数据库 1、介绍 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM,它具有如下特点:通用性、高性能、高可用、跨平台、高可扩展 2、与...
    99+
    2023-08-18
    数据库 mysql sql
  • 记录一次mysql项目适配达梦数据库
    前段时间做过mysql的项目适配达梦数据库,记录一下遇到的主要问题 一、配置修改 1.达梦数据库驱动 com.dameng DmJdbcDriver18 ...
    99+
    2023-08-17
    数据库 mysql mybatis
  • 达梦数据库ODBC配置及达梦与mysql创建DBLINK测试
    目录 官网ODBC配置... 3 1、ODBC下载官网... 3 2、上传安装包并解压... 3 3、安装odbc. 3 4、安装依赖... 4 5、再次执行安装即可... 4 6、查看版本及配置文件... 4 Mysql-ODBC配置....
    99+
    2023-09-09
    数据库 mysql 服务器
  • 国产适配之MySQL替换为达梦8数据库
    1. 背景 项目中要做国产化,MySQL要替换成达梦8数据库。项目中MySQL的建表语句和内置数据通过.sql文件维护,安装时会初始化表结构和表内置数据。项目架构为SpringBoot + JPA /...
    99+
    2023-09-03
    数据库 mysql linux java sql
  • 达梦数据库与mysql的区别
    达梦数据库与mysql的区别 关于硬件关于软件特性区别点 关于硬件 达梦数据库作为一款国产替代数据库,基于oracle内核的关系型数据库,已RDBMS为核心,SQL为标准,支持SQL9...
    99+
    2023-09-03
    数据库 mysql
  • 【Database-02】达梦数据库 - DM Manager管理工具安装
    1、简介 DM Manager是达梦数据库自带的图形化界面管理工具,在安装达梦数据库的时候就会自动安装。 Linux环境,默认安装路径为:达梦安装目录/tool/manager,如果Linux是安装G...
    99+
    2023-09-07
    数据库 服务器 运维
  • 数据库迁移之mysql到达梦数据库
    1 背景介绍 由于业务需求要求数据库国产化,因此将数据从mysql数据库中迁移到国产达梦数据库中。将mysql中的每个库迁移到达梦不同模式下,下面为详细过程。 2 具体步骤 (1)安装达梦客户端工具 (2)点击选择DM管理工具 (3)创建...
    99+
    2023-08-20
    数据库
  • 达梦数据库、MySQL MERGE INTO 用法
    1. 需求描述 在我们日常开发中,经常会有些数据是唯一的,比如人员的信息、车辆基本信息等等,我们在数据库中只存一条数据,我们在批量导入数据的时候,有重复数据是很难受的事情,我们用MERGE INTO 就可以解决这件事情 2. MERGE I...
    99+
    2023-09-21
    mysql sql 数据库
  • DM8:达梦数据库jdbc连接串配置
    DM8:达梦数据库jdbc连接串配置 单库示例:   单个参数: jdbc:dm://192.168.100.100:5236SCHEMA=SYSDBA 或  多个参数之间用连接符号:& jdbc:dm://192.168.100.100:...
    99+
    2023-08-18
    数据库 linux 服务器
  • Mybatis整合达梦数据库
    陈老老老板🦸 👨‍💻本文专栏:国产数据库-达梦数据库(主要讲一些达梦数据库相关的内容) 👨‍💻本文简述:本文讲一下SpringBoot整合My...
    99+
    2023-08-16
    mybatis 数据库 java
  • JPA整合达梦数据库
    陈老老老板🦸 👨‍💻本文专栏:国产数据库-达梦数据库(主要讲一些达梦数据库相关的内容) 👨‍💻本文简述...
    99+
    2023-08-31
    数据库 java 开发语言
  • PHP连接达梦数据库
    1、环境介绍 cat /etc dm_close($link); }catch(Exception $e){ $e->getMessage() . "";}>        显示连接成功。 更多资讯请上达梦技术社区了解:htt...
    99+
    2023-08-31
    php 数据库 服务器
  • Python连接达梦数据库
    python如果想连接达梦数据库,必须要安装dmPython。 简介:dmPython 是 DM 提供的依据 Python DB API version 2.0 中 API 使用规定而开发的数据库访问接口。dmPython 实现这些 API...
    99+
    2023-09-17
    数据库 python 达梦数据库 DM8 DM7
  • thinkphp6 phpstudy php8 达梦数据库
    php8 pdo方式连接达梦数据库 下载php8 TS版本 下载地址:https://windows.php.net/download/ 解压至:phpstudy目录下:phpstudy_pro\E...
    99+
    2023-09-01
    数据库 php
  • 达梦数据库备份恢复
    1 备份恢复概述   DM7 数据库中的数据存储在数据库的物理数据文件中,数据文件按照页、簇和段的方式进行管理,数据页是最小的数据存储单元。任何一个对 DM7 数据库的操作,归根结底都是对某个数据文件页...
    99+
    2024-04-02
  • 达梦数据库常用命令
    解锁用户 -- 解锁因多次登录失败被锁定的用户alter user "${USERNAME}" limit failed_login_attemps unlimited,PASSWORD_LOCK_T...
    99+
    2023-10-12
    数据库 sql 达梦
  • Mysql迁移到达梦数据库-Mysql到DM的应用迁移-给自增列赋值-GroupBy语法不兼容
    现象描述 把基于Mysql 的应用移植到达梦数据库,我们进程碰到下面两个问题。 场景一: 在完成了数据和应用系统的移植后,应用一启动,看到日志框框报错:无法给自增列赋值。 【仅当指定列列表,且 S...
    99+
    2024-04-02
  • 达梦数据库导入导出
    一、导入导出原理 1、工具简介 逻辑导出(dexp/dexpdp)和逻辑导入(dimp/dimpdp)是 DM 数据库的两组命令行工具, 用来对 DM 数据库进行逻辑备份和逻辑还原。逻辑备份和逻辑还原需要数据库在正常的运行 过程中进行...
    99+
    2023-08-21
    数据库 服务器 linux
  • 达梦数据库使用配置及问题整理
    1. 达梦数据库理解及安装 1.1 达梦数据库是基于模式的 达梦数据库是基于模式的(具体我也不太清楚,感兴趣的可以自己研究),创建一个用户就会创建一个模式,这里的模式有点类似于mysql中库的概念。 如果用当前用户访问当前用户同名的模式下的...
    99+
    2023-08-19
    数据库 mysql java
  • 达梦数据库事务管理
    1.事务介绍   数据库中由用户自定义发起的一些列操作集合简称事务。只要可以连接数据库中进行一组操作序列都可以称为事务。   COMMIT 操作会将该语句所对应事务对数据库的所有更新持久化(即写入磁盘),数据库此时进入一个新的一致性状态,同...
    99+
    2023-09-24
    数据库 java mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作