检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
指向返回参数数据类型的指针。 MySQL ODBC对于任意类型均返回SQL_VARCHAR。 GaussDB ODBC的会根据内核返回的不同类型判断返回给应用相应的DataType类型。 ParameterSizePtr 指向返回参数大小的指针。 MySQL ODBC若允许ODB
型转换。 MySQL数据库支持任意两种数据类型之间做转换。 由于存在以上差异,基于MySQL数据库的应用程序向GaussDB数据库迁移时,SQL语句可能由于不支持不同数据类型之间的转换而报错。或者支持转换的场景下,转换的规则有差异导致SQL语句执行的结果不同。 推荐的做法是:SQ
流量控制函数 表1 流量控制函数列表 MySQL数据库 GaussDB数据库 差异 IF() 支持,存在差异 expr1入参仅支持bool类型。非bool类型入参若不能转换为bool类型则报错。 若expr2、expr3两个入参类型不同且两类型间不存在隐式转换函数则报错。 两个入参类型相同时,返回该入参类型。
数值数据类型 除特别说明外,MySQL兼容性M-Compatibility模式中的数据类型精度、标度、位数大小等默认不支持用浮点型数值定义,建议使用合法的整型数值定义。 表1 整数类型 MySQL数据库 GaussDB数据库 差异 BOOL 支持,存在差异 输出格式:GaussDB中SELECT
日期与时间数据类型 表1 日期与时间数据类型 MySQL数据库 GaussDB数据库 差异 DATE 支持,存在差异 GaussDB支持date数据类型,与MySQL相比规格上存在如下差异: 反斜杠\在MySQL和GaussDB中都视为转义,但MySQL支持\0,GaussDB暂不支持,因
char(0))将空串转成char(0)类型。MySQL支持按长度转成对应的类型。 操作符 GaussDB能正常转成浮点型的字符串与整型值进行加、减、乘、除、求余计算,返回值是整型值,MySQL是返回浮点型。 GaussDB除以0会报错,MySQL返回null。 “~”:GaussDB返回负数,MySQL返回8字节无符号整数。
当GaussDB使用的字符编码是SQL_ASCII时,服务器会根据ASCII标准对字节值0~127进行解释,而字节值128~255则当作无法解析的字符。如果该函数的输入输出包含了任何非ASCII数据,数据库将无法帮助用户转换或者校验非ASCII字符,从而与MySQL的行为产生较大差异。
第一个参数不为NULL且第二个参数表达式中存在隐式类型转换错误时,MySQL会忽略该错误,GaussDB会提示类型转换错误。 NULLIF() 支持,存在差异 函数返回值类型在MySQL 5.7和MySQL 8.0中存在差异,考虑到MySQL 8.0更合理,因此函数返回值类型兼容MySQL 8.0。 父主题: 系统函数
LOG10() 支持 - LOG2() 支持 - PI() 支持,存在差异 PI函数的返回值精度与MySQL的有差异:MySQL中PI函数的结果仅保留四舍五入之后的小数后6位,而GaussDB的结果会保留四舍五入之后的小数后15位。 POW() 支持 - POWER() 支持 - RAND()
对象的键值对个数最大值和数组的元素个数最大值也小于MySQL。 字符序差异: 在MySQL中,使用collation函数单独查询JSON类型的列,返回的字符序是BINARY,但GaussDB中返回utf8mb4_bin。其他使用的场景都使用utf8mb4_bin,与MySQL相同。
DOUBLE)将表达式转换为浮点类型,MySQL 5.7版本不支持此转换。 GaussDB不支持使用CAST(expr AS JSON)将表达式转换为JSON。 对于CAST嵌套子查询场景,如果子查询语句返回的是FLOAT类型,GaussDB返回的是准确的数值,MySQL 5.7版本返回失真数值
日期与时间数据类型 表1 日期与时间数据类型 MySQL数据库 GaussDB数据库 差异 DATE 支持,存在差异 GaussDB支持date数据类型,与MySQL相比规格上存在如下差异: 反斜杠\在MySQL和GaussDB中都视为转义,但MySQL支持\0,GaussDB暂不支持,因
指向返回参数数据类型的指针。 MySQL ODBC对于任意类型均返回SQL_VARCHAR。 GaussDB ODBC的会根据内核返回的不同类型判断返回给应用相应的DataType类型。 ParameterSizePtr 指向返回参数大小的指针。 MySQL ODBC若允许ODB
整数溢出处理的行为: MySQL在5.7版本,此函数入参和结果的最大值都为2^32=4294967296,在入参或结果的period对应的月份累加值以及month_number超过uint32范围时存在整数回绕问题;在MySQL 8.0中已修复此问题。GaussDB下此函数的表现与MySQL
延到之后的年份,或者将0月作为上一年12月处理。在MySQL 8.0中已修复此问题,对越界月份报错。GaussDB下此函数的表现与MySQL 8.0版本保持一致。 PERIOD_DIFF() 支持,存在差异 整数溢出处理的行为。 MySQL在5.7版本,此函数入参和结果的最大值都
ODBC ODBC接口参考 父主题: 驱动
在开启精度传递的场景下,使用UNION,如果参与集合运算的查询语句,其查询的字段为常量,且查询的结果数据类型为INT/DECIMAL,则最后返回的精度存在差异。在MySQL 5.7中,返回的精度与UNION左右两侧的顺序有关;在MySQL 8.0中修复了这个问题,返回的精度与UNI
7中YEAR和TINYINT、INT、MEDIUMINT、BIGINT、BOOL聚合的结果类型为带UNSIGNED的类型,GaussDB的结果类型为不带UNSIGNED的类型;MySQL中BIT和INT、NUMERIC、FLOAT、DOUBLE等数值类型的聚合类型为VARBINARY类型,GaussDB中BI
第一个参数不为NULL且第二个参数表达式中存在隐式类型转换错误时,MySQL会忽略该错误,GaussDB会提示类型转换错误。 NULLIF() 支持,存在差异 函数返回值类型在MySQL 5.7和MySQL 8.0中存在差异,考虑到MySQL 8.0更合理,因此函数返回值类型兼容MySQL 8.0。 父主题: 系统函数
系统函数兼容性概述 GaussDB数据库兼容绝大多数MySQL的系统函数,但存在部分差异。 当前存在原GaussDB的系统函数和MySQL系统函数同名,但是M-Compatibility兼容模式下尚未支持这些函数的情况;一部分未支持的同名函数会提示用户在M-Compatibili