MySQL迁移达梦,两个数据库的不同之处,需要修改的地方有哪些(持续更新)

1、DATEDIFF函数参数不同
MySQL:DATEDIFF(date1, date2)
达梦:DATEDIFF(DAY/MONTH, date1, date2)

2、去重
MySQL:去重可以使用DISTINCT、GROUP BY、子查询多种方式。比如:SELECT a.* FROM a LEFT JOIN b ON a.id = b.aId GROUP BY a.id。
达梦:不能使用GROUP BY去重,使用GROUP BY时,查询字段只能是统计,比如MAX()、SUM()等。

3、CASE
MySQL:SELECT * FROM a WHERE CASE WHEN status = 1 THEN name = ‘Bruce’ ELSE age = 20 END;
达梦:SELECT * FROM a WHERE IF(status = 1, name = ‘Bruce’, age = 20);

4、GROUP_CONCAT()函数不支持
MySQL:该函数用于将分为一组的值用逗号拼接。
达梦:使用LISTAGG(字段名, ‘,’) WITHIN GROUP (ORDER BY 字段名)代替

5、模式名information_schema不存在,尝试迁移
MySQL:在information_schema中查询表结构信息。
达梦:使用SYS.DBMS_METADATA.GET_DDL(“TABLE”, “SYSDBA”, “wms_purchase_order”)获取表结构信息。

6、ˋ 符号不支持,去掉所有 ˋ 符号。

7、双引号用于模式名、表名、列名,单引号用于参数、字符串,反之报错。

8、YEARWEEK()函数
MySQL:该函数用于获取哪年的哪周。
达梦:SELECT YEAR(‘2024-09-19’)||WEEK(‘2024-09-19’),返回202438。

9、DATE()函数
MySQL:该函数用于返回时间的日期部分。
达梦:SELECT CAST(‘2024-09-19 14:46:00’ AS DATE),返回’2024-09-19’。

10、当别名为关键字时,达梦会自动将别名转为大写,可加双引号防止报错。

11、不要轻易使用兼容MySQL语法!否则达梦版本不同会出现各种错误,一次性把所有语法更换成达梦反而成本更低!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Counter-Strike大牛

创作不易,感谢鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值