mysql迁移到达梦的修改点

ops/2024/10/19 15:12:00/
  • 字段是达梦关键字的,达梦会给转成大写,如果不要转则需要使用双引号引起来。关键字参考:D:\dmdbms\doc\DM8_SQL语言使用手册.pdf
    • 例如:RowCount Level Content Password Locked
  • 中文乱码问题,需要在应用程序所在服务器的/etc/dm_svc.conf文件中添加CHAR_CODE=(PG_UTF8)。参考:参考
  • 时区问题,需要在应用程序所在服务器的/etc/dm_svc.conf文件中添加TIME_ZONE=(480)。参考:参考
  • 双引号的问题。mysql中双引号作为字符串使用的情况,要改成单引号。
  • GROUP_CONCAT
GROUP_CONCAT(字段 Separator ',') AS 字段别名
-- 改成
WM_CONCAT(字段) AS 字段别名
-- 如果需要加上排序
WM_CONCAT(字段) over (order by 排序字段) AS 字段别名
  • COUNT 不能用bool作为参数。例如:count(true) 需要改成 count(1)
  • JSON json函数参考
    • ->>操作符要改成JSON_VALUE。例如: a->>'$.b'  改成  JSON_VALUE(a, '$.b')
    • 在path中不能有转义符,例如JSON_VALUE(a, '$.\"b\"')中的转义符得去掉
  • date函数(date_sub, date_add, adddate)
DATE_ADD(NOW(), INTERVAL 1 SECOND)
-- 要改成
DATEADD(second, 1, now())DATEDIFF(ExpireTime, NOW())
-- 要改成
DATEDIFF(D, ExpireTime, NOW())date(ExpireTime)
-- 要改成
DATE_FORMAT(ExpireTime, 'yyyy-mm-dd')
  • replace into 或 on duplicate key update 或 insert ignore into
REPLACE INTO user(id, name) VALUES(1, 'test');
-- 或 
REPLACE INTO user(id, name) VALUES(1, 'test') ON DUPLICATE KEY UPDATE name = 'test';
-- 要改成
MERGE INTO user uUSING (select 1 id, 'test' name) tON (t.id= u.id)
WHEN NOT MATCHED THENINSERT (id, name) VALUES (t.id, t.name)
WHEN MATCHED THENUPDATE SET u.name = t.name;
  • mysql查出来的字段类型都是string,但是达梦会根据数据表类型返回。比如b字段是int类型 SELECT b from a; mysql查出来的string,但是达梦是integer
  • 达梦having不能用已经计算好的字段,不然会报“-4083: 引用列未找到”。例如执行如下sql,mysql可以正常执行,达梦中必须得用having count(*) > 1
select name, count(*) c from user group by name having c > 1;

  • 如果需要给自增列手动赋值,需要在执行插入前执行SET IDENTITY_INSERT 表名 ON;
  • signed、unsigned关键字不能用。signed对应integer,但是unsigned对应啥呢???
select convert(1, signed) 要改成 select convert(integer, 1)
select cast(1 as signed)  要改成 select cast(1 as integer)

  • mysql的修饰符(`)在达梦能用?可能区分不同达梦版本。

ps:达梦客户端在执行增删改语句时,可以设置查询自动提交


http://www.ppmy.cn/ops/126750.html

相关文章

等保测评的技术要求与管理要求详解

等保测评,即网络安全等级保护测评,是根据《中华人民共和国网络安全法》、《信息安全技术网络安全等级保护基本要求》等相关法规和标准,对信息系统的安全性进行评估的过程。等保测评分为技术要求和管理要求两大方面,旨在确保信息系…

spring boot核心理解-各种starter

理解 Spring Boot 的 Starter 机制以及如何选择和使用各种 starter,是开发 Spring Boot 应用的重要一环。Spring Boot Starter 是一组方便的依赖组合,用于简化 Spring 项目中的依赖管理。它们可以帮助开发者快速引入所需的库和自动配置,从而加…

Linux fork函数

目录 0.前言 1.fork函数初识 2.写时拷贝 3.fork常规用法 4.fork调用失败的原因 5.小结 (图像《分叉之光:科幻视角下的Linux进程复制》由AI生成) 0.前言 在Linux操作系统中,进程是系统资源管理的核心单元。每一个程序的执行都对…

集群Spring定时只执行一次

方法一.配置文件 1.在application-jdbc.yml 配置一个标识 例如:dingshizhixing1(0不执行 1.执行) 2.在定时文件里引入: Value("${dingshirenwu}") private String dingshirenwu; 执行定时方法加判断 if&#xff08…

MySQL-多表查询

子查询[分步走] 1:一个sql的查询结果当做另一个sql的查询条件. 2:内层的那个sql语句要先执行 sql -- todo --------------子查询---(嵌套查询)--------------- -- 例如,使用命令完成: -- (1)使用数据库班级db_product3下的商品表和…

小猿口算炸鱼脚本

目录 写在前面: 一、关于小猿口算: 二、代码逻辑 1.数字识别 2.答题部分 三、代码分享: 补充:软件包下载 写在前面: 最近小猿口算已经被不少大学生攻占,小学生直呼有挂。原本是以为大学生都打着本…

数据分析方法(回归分析,决策树与神经网络,提升树,时间序列分析,假设检验,用户画像,竞品分析)等

1.回归分析 回归分析是一种统计方法,用于探索自变量(预测变量)和因变量(目标变量)之间的关系。它可以帮助预测变量的变化对目标变量的影响大小。例如,简单线性回归用于分析两个变量之间的线性关系&#xf…

【工程测试技术】第4章 常用传感器分类,机械式,电阻式,电容式,电感式,光电式传感器

上理考研周导师的哔哩哔哩频道 我在频道里讲课哦 目录 4.1 常用传感器分类 4.2 机械式传感器及仪器 4.3 电阻式、电容式与电感式传感器 1.变阻器式传感器 2.电阻应变式传感器 3.固态压阻式传感器 4.典型动态电阻应变仪 4.3.2 电容式传感器 1.变换原理 2.测量电路 …