mysql迁移到DM数据库时sql语句的修改

本文分享了在将项目从MySQL迁移至国产达梦(DM)数据库过程中遇到的关键字冲突、函数兼容性及扩展用法的修改等问题。在DM中,关键字作为列名可能导致SQL执行错误,需要避免或修改;MySQL的一些加密和IP处理函数在DM中无直接对应,需寻找替代方案;在使用GROUP BY时,DM遵循更严格的SQL标准,需要调整SQL语句结构。此外,DM不支持MySQL的部分插入语句扩展,可以考虑使用MERGE语句进行替代。
摘要由CSDN通过智能技术生成

最近,在进行一个项目的迁移工作,数据库原来采用的mysql,现在想改为国产数据库达梦(DM)。说起mysql,很多人都不陌生,作为一个开源的关系型数据库,mysql有着极为广泛的使用群体,而且,很多以前的中小型项目都是使用免费的mysql数据库。但是,对国产数据库DM,了解的人远没有mysql那么广泛,并且社区和论坛较少,在网上查到的可参考资料也寥寥无几,不过,值得庆幸的是,DM在很多功能上都与oracle数据库比较相近,并且采用sql92标准。

首先,说一下关键字问题。

DM的关键字真多,这是我第一次接触DM时的真实感受。在一些sql语句中,如果使用了某些关键字,那么对不起,直接报错。在建表时最好要使用非关键字,当然,大部分关键字可以作为列名,但是在执行一些增删改查的sql时(尤其是update时),会出现很多问题。具体的关键字有很多,像stat、begin、last、date、value、timestamp等,这些字作为列出现时,sql执行会出现一些问题。毕竟是迁移原有项目,原来把这些关键字作为表的列名的,应该做适当的修改,如加下划线。

其次,说一下函数问题。

在mysql中的很多加密函数,在DM中不存在,或者是无法找到替代函数,比如sha1();还有就是一些跟ip的转换相关的函数也没有找到,比如mysql的inet6_ntoa()和inet6_aton();一些日期函数无法使用,如,mysql的utc_timestamp();一些进制转换函数也无法使用,如:mysql的hex()和unhex()ÿ

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值