mysql与gaussdb的差异:

YEAR(CURRENT_TIMESTAMP()) year        =》   EXTRACT (year from current_timestamp ()) year

((#{year} - 1) + '0101000000')                   =》   to_date((#{year} - 1)||'-01-01','%Y-mm-%d')

((#{year} - 1)+'1231235959')                     =》   to_date((#{year} - 1)||'-12-31 23:59:59','%Y-mm-%d %H:%i:%s')

CEILING                                                  =>    CEIL

字段如果有not null约束,mysql中可以插入‘’/ ' ',在gauss中只能插入' '  ----

导入数据时 mysql 0000-00-00                  =>    gauss  0001-01-01          ----

dateFormat                                            =>    视具体情况替换成to_char 或者 to_date

STR_TO_DATE                              =》    to_date

group by 的list 中必须要有select中的字段

日期格式 :%M                                      =>     日期格式 : mm

ON DUPLICATE KEY UPDATE 支持子查询  =>   分布式情况下,不支持子查询,另外merge功能也不支持子查询  ---后通过merge实现

integer格式能隐式转成date                     =》    需要to_date函数转换

Decimal(x,y)/Number/Double/float 精度处理差异:

1)如果在sql中直接将查询结果设置为0(0.00)(不从数据库字段中取值),则mysql统一处理为0.00,gaussdb统一处理为0

2)如果在sql中直接将查询结果设置为2(2.00)(不从数据库字段中取值),则mysql统一处理为2.00,gaussdb统一处理为2

例子:

select 0 as alias from table 的结果:       =》   select 0 as alias from table 的结果:

0.00                                                               0

select 0.01 as alias from table 的结果:   =》   select 0.01 as alias from table 的结果:

0.01                                                               0.01

3)计算结果的精度处理:

A(Decimal(16,2)) :1.00 ,B(Decimal(16,2)) :1.00     =>   A(Decimal(16,2)) :1.00 ,B(Decimal(16,2)) :1.00

A+B =2.00                                                                    A+B =2

PERIOD_ADD                            =》 add_mouths

DATE_ADD                           =》 timestampadd

SIGNED integer                           =》 integer SIGNED

建库/表/索引:

分库分表语法修改:

分片:

dbpartition by hash(`MDTRTPROV_DBPT_CODG`)   =》DISTRIBUTE BY HASH  (MDTRTPROV_DBPT_CODG)  且 分片字段必须是主键

分区:

tbpartition by hash(`MSGID`) tbpartitions 3            => PARTITION BY HASH  (MSGID) PARTITIONS 3

索引:

KEY `auto_shard_key_mdtrtprov_dbpt_codg` (`MDTRTPROV_DBPT_CODG`) USING BTREE  -》 默认B+

KEY `INDEX_senderMsgId` (`SENDER_MSG_ID`)       =》需要单独创建索引,create index

=》普通表在分布式下必须要指定分片(复制表):distribute by replication on groupid(1)

gaussdb的语法限制:

1)ORDER BY 要用as的别名,不能用原字段名

2)group by 要用原字段名称,不能用as的名称

3)字段用到关键字,如date,需要加上反引号`

一些常见的问题:

如果遇到查询关闭数据库socket连接,可以试试调整where条件顺序,将有传参的条件放到固定条件之前, 将CURRENT_TIMESTAMP()函数换成sysdate

那我想将两张相同字段的表进行合并,如果主键重复就做更新操作,主键不冲突就插入,gauss该用什么语句呢

DataStudio工具,格式化后很多sql执行会报错。

When Case 中有now()函数导致执行报错,可以更换为sysdate

mysql distribute by_Mysql与分布式Gaussdb 100语法差异及常见问题汇总相关推荐

  1. MySQL 三万字精华总结 + 面试100 问,吊打面试官绰绰有余(收藏系列)

    ❝ 写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小,对正经面试也没什么帮助,有点东西的面试官深挖下就懵逼了. 个人建议把面试题看作是费曼学习法中的回顾.简化的环节 ...

  2. MySQL 三万字精华总结 + 面试100 问,吊打面试官绰绰有余

    写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小,对正经面试也没什么帮助,有点东西的面试官深挖下就懵逼了. 个人建议把面试题看作是费曼学习法中的回顾.简化的环节,准 ...

  3. MySQL 三万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列)

    写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小,对正经面试也没什么帮助,有点东西的面试官深挖下就懵逼了. 个人建议把面试题看作是费曼学习法中的回顾.简化的环节,准 ...

  4. 【转】MySQL 三万字精华总结 + 面试100 问,吊打面试官绰绰有余(收藏系列)

    MySQL 三万字精华总结 + 面试100 问,吊打面试官绰绰有余(收藏系列) 本文公众号来源:JavaKeeper作者:派大新 写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术 ...

  5. RadonDB - 基于MySQL的云原始分布式数据库,用于构建全局的,可扩展的云服务

    RadonDB是开源的云原生MySQL数据库,用于构建全局的,可扩展的云服务 概观 RadonDB是一个开源的,云原生的MySQL数据库,可实现无限的可扩展性和性能. 什么是RadonDB? Rado ...

  6. Oracle 迁移至 MySQL、PG等分布式数据库,可能遇到的12个典型问题

    近年来,分布式数据库逐渐占据了OLTP领域较大的市场,尤其在互联网领域,MySQL.PG等分布式数据库的应用非常广泛.随着软件国产化.自主可控战略的提出,非互联网企业也开始考虑数据库转型,很多企业原本 ...

  7. 一文搞懂MySQL XA如何实现分布式事务

    一文搞懂MySQL XA如何实现分布式事务 前言 XA 协议 如何通过MySQL XA实现分布式事务 前言 MySQL支持单机事务的良好表现毋庸置疑,那么在分布式系统中,涉及多个节点,MySQL又是如 ...

  8. 6 redhat 查看rtc时间_甜甜老师的DB Fun圈第2讲:GaussDB 100 OLTP 单机在RHEL7.6上的安装...

    在[甜甜老师的DB Fun圈]第一讲的分享中,我们揭开了华为GuassDB数据库的神秘面纱,那么本期我们继续分享[甜甜老师的DB Fun圈]第二讲--GaussDB 100 OLTP 单机在RHEL7 ...

  9. MySQL和PostgreSQL的常用语法差异

    背景 在去年的DBMS评比中,PostgreSQL夺冠,PostgreSQL一直保持上升姿态,越来越多的客户选择使用PostgreSQL,还有一部分客户从MySQL迁往PostgreSQL,那Post ...

最新文章

  1. 用Debug函数实现API函数的跟踪
  2. error C2668
  3. Tablecontrol动态序号实现
  4. iOS中AutoLayer自动布局流程及相关方法
  5. minecraft服务器_如何使用Minecraft领域设置简单的无压力Minecraft服务器
  6. 在给Ext2 Grid设置了autoHeight属性后,如何显示滚动条
  7. HDFS文件系统的JAVA-API操作(一)
  8. 昨天做的事情和今天需要做的事情
  9. 查看对方IP地址的5种方法
  10. 如何在mysql中创建学生信息表_数据库怎么创建学生信息表
  11. 免费直播编码软件应用技巧
  12. Unity游戏开始界面制作教学
  13. HTML5工程师利用原生js开发百度搜索黑洞漩涡特效
  14. 计算机设置从光盘启动怎么办,[光盘启动]BIOS设置从光盘光驱启动教程
  15. GIF 斗图警告!GitHub 标星 5.5k+,Sorry 会编程就是可以 为所欲为!
  16. 解决idea代码无故爆红问题
  17. 微信公众号推文(编辑+排版教程)
  18. java第一个代码Hello,World
  19. matlab赋值一行,matlab – 0和1的矩阵,其中后续行中的赋值取决于前一行
  20. 13个优秀的UML工具软件

热门文章

  1. Tensorflow2.* 加载和预处理数据之用 tf.data 加载 Numpy数据(2)
  2. xmos-XU208-128-QF48芯片简介
  3. mysql导数据出现Incorrect string value: '\xF0\x9F\x90\x82'报错
  4. tao.opengl + C#
  5. git错误:error: failed to push some refs to
  6. SAP S/4 HANA物料账实际成本:理解版本迁移时的基本改变和影响
  7. 互联网金融热浪下丨看看美国的互联网金融怎么玩?
  8. linux mplayer rpm,mplayer - movie player for linux
  9. 鼠标点击事件对象的clientX、pageX、offsetX、screenX、x
  10. touch.pageX/touch.screenX/touch.clientX的区别