当前位置: 首页 > news >正文

mysql迁移到达梦的修改点

  • 字段是达梦关键字的,达梦会给转成大写,如果不要转则需要使用双引号引起来。关键字参考: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.lryc.cn/news/466267.html

相关文章:

  • Go小技巧易错点100例(十八)
  • 【python】极简教程8-字符串
  • UEFI EDK2框架学习 (四)——UEFI图形化
  • 【C++】— 一篇文章让你认识STL
  • mysql--索引
  • 【linux】线程 (三)
  • c++日常积累
  • 字节流写入文件
  • Torch模型导入
  • 博弈论:博弈类型空间集合;三层博弈拓展式;
  • 数据库表的关联、集合操作
  • word怎么清除格式,Word一键清除所有格式教程
  • ShardingProxy服务端分库分表
  • 开源的 FOC(Field-Oriented Control) 项目
  • 高等数学 5.5 反常积分的审敛法 Γ函数
  • 宝塔安装ffmpeg的方法
  • 案例分享-优秀蓝色系UI界面赏析
  • 陪诊小程序之uniapp(从入门到精通)
  • 深度学习(一)基础:神经网络、训练过程与激活函数(1/10)
  • 源代码加密技术的一大新方向!
  • SVN——常见问题
  • JavaCV 图像灰度化处理
  • 基于Multisim三极管B放大系数放大倍数测量电路设计(含仿真和报告)
  • Molmo模型实战
  • 免费开源的微信开发框架
  • 波形的变化和信号的产生1+multisim仿真
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(3)
  • 电脑微信多开方法,保姆级教学,超简单!
  • 【Mysql】-锁,行级锁
  • 手机功耗技术领域