美文网首页
MySQL迁移达梦,两个数据库的不同之处,需要修改的地方有哪些(

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

作者: 王月亮17 | 来源:发表于2024-09-18 16:29 被阅读0次

    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、当别名为关键字时,达梦会自动将别名转为大写,可加双引号防止报错。

    相关文章

      网友评论

          本文标题:MySQL迁移达梦,两个数据库的不同之处,需要修改的地方有哪些(

          本文链接:https://www.haomeiwen.com/subject/syinljtx.html