最近,在进行一个项目的迁移工作,数据库原来采用的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()ÿ