检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
utf8mb4字符集下默认字符序为utf8mb4_general_ci,与MySQL 5.7保持一致,utf8mb4_0900_ai_ci为utf8mb4的非默认字符序。 GaussDB中utf8和utf8mb4为同一个字符集。 表1 排序规则列表 MySQL数据库 GaussDB数据库 utf8mb4_general_ci
时表,不可以在临时表和非临时表之间创建外键。MySQL无法使用临时表作为参考表或被参考表。MySQL在创建外键指定被参考表时,不会匹配当前会话已创建的临时表。 GaussDB创建外键时可以不指定被参考表的被参考字段名,此时会将被参考表中的主键作为外键的被参考字段。MySQL中,必须指定被参考表的被参考字段。
JSON函数差异说明:对于JSON函数和其他字符入参函数,如果输入中包含转义字符,默认情况下会与MySQL有一定差异。要实现与MySQL的兼容,需要设置GUC参数standard_conforming_strings取值为off,在这种情况下,转义字符的处理将与MySQL兼容,但是使用转义字符\f、\Z、\0和\uxxxx的场景会与MySQL存在差异。
在M-Compatibility中是设置当前事务的隔离级别。 在MySQL中是设置会话级事务的隔离级别。 GaussDB中,通过使用SET命令,只能改变当前事务的隔离级别。如果想要改变会话级的隔离级别,可以使用default_transaction_isolation。在MySQL中,通过使用SET命令,可以改变会话级的事务隔离级别。
执行LOAD DATA语法写入表中的数据若无法转换为表中数据类型格式时报错。 LOAD DATA SET表达式中不支持指定列名计算。 LOAD DATA只能用于表,不能用于视图。 Windows下的文件与Linux环境下文件默认换行符存在差异,LOAD DATA无法识别此场景会报错,建议用户导入时检查导入文件行尾换行符。
GaussDB无引号标识符中不支持以美元符号($)开头,MySQL无引号标识符中支持。 GaussDB无引号标识符中的支持大小写敏感的数据库对象。 GaussDB标识符支持U+0080~U+00FF扩展字符,MySQL标识符支持U+0080~U+FFFF的扩展字符。 无引号标识符中,Gauss
GaussDB无引号标识符中不支持以美元符号($)开头,MySQL无引号标识符中支持。 GaussDB无引号标识符中的支持大小写敏感的数据库对象。 GaussDB标识符支持U+0080~U+00FF扩展字符,MySQL标识符支持U+0080~U+FFFF的扩展字符。 无引号标识符中,Gauss
SCHEMAS上可以查询到,不能仅仅有表的权限,必须还需要有数据库的权限。MySQL中只要拥有表权限即可访问。 GaussDB中:校验逻辑中优先校验Schema是否存在,后校验当前用户是否对Schema具有权限,与MySQL存在差异。 GaussDB中:查询结果中字段使用字符集utf8mb4、字符序utf8mb4_bin。
系统函数兼容性概述 GaussDB数据库兼容绝大多数MySQL的系统函数,但存在部分差异。 除特别说明外,MySQL兼容性B模式中的函数行为默认为GaussDB原生行为。 GaussDB MySQL兼容性的绝大部分系统函数目前均存在返回值与MySQL精度不一致(结果后面0的位数)的问题,这是
值也只在其线程中使用,未完全使用完毕的话,也会出现表中自动增长列的值不连续的情况。并行插入产生的自增值结果无法保证与MySQL完全一致。 GaussDB的本地临时表中的自动增长列批量插入时不会预留自增值,正常场景不会产生不连续的自增值。MySQL临时表与普通表中的自动增长列自增结果一致。
DB输出为十六进制,MySQL中根据ASCII码表转义,无法转义的输出为空。 主键:MySQL中LONGTEXT类型不支持主键,GaussDB支持。 索引:MySQL中LONGTEXT类型不支持除前缀索引外其他索引方法,GaussDB支持。 外键:MySQL中TINYTEXT类型
数字操作函数列表 MySQL数据库 GaussDB数据库 差异 log2() 支持,存在差异 小数位显示与MySQL存在差异,受GaussDB浮点数据类型限制,可通过参数extra_float_digits控制小数位个数显示。 由于输入精度内部处理差异,GaussDB与MySQL会存在结果计算差异。
@var_name := expr MySQL用户变量名支持使用转义字符或双重引号转义,GaussDB用户变量名不支持。 单引号括起的变量名,变量名不能出现单引号,如@'''、@''''、@'\''不支持,解析时匹配不到'或解析报错,如: -- 解析报错 db_mysql=# SET @''''
的本函数与MySQL的差异,此为GaussDB与MySQL的转义字符差异。 str字符串中的“\b”,输出结果表现形式与MySQL有差异。此为GaussDB与MySQL的固有差异 str字符串中含有“\0”时,GaussDB由于UTF-8字符集不识别该字符,输入不成功。此为GaussDB与MySQL的固有差异
留的缓存值也只在其线程中使用,未完全使用完毕的话,也会出现表中自动增长列的值不连续的情况。并行插入产生的自增值结果无法保证与MySQL完全一致。 本地临时表中的自动增长列批量插入时不会预留自增值,正常场景不会产生不连续的自增值。MySQL临时表与普通表中的自动增长列自增结果一致。
除特别说明外,MySQL兼容性M-Compatibility模式中的数据类型精度、标度、位数大小等默认不支持用浮点型数值定义,建议使用合法的整型数值定义。 表1 整数类型 MySQL数据库 GaussDB数据库 差异 BOOL 支持,存在差异 输出格式:GaussDB中SELECT
RING或TIME其中一个时,GaussDB输出为TEXT类型,MySQL输出为VARCHAR类型。 两个入参类型其中一个为FLOAT4类型另一个为numeric范畴中任一类型,返回值为DOUBLE类型。MySQL其中一入参为FLOAT4,另一入参为TINYINT、UNSIGNED
JDBC接口参考 GaussDB与MySQL的JDBC接口定义一致,均遵循业界规范,本章节主要介绍GaussDB数据库的MySQL兼容性B模式与MySQL数据库JDBC接口的行为差异。 获取结果集中的数据 ResultSet对象提供了丰富的方法,以获取结果集中的数据。获取数据常用
等,不建议混合使用分隔符,建议使用最常用的“-”、“/”作为分隔符。 无分隔符:推荐使用完整格式,如 'YYYYMMDD' 或者 'YYMMDD'。其他不完整的格式(包括超长格式)解析的规则与MySQL存在差异,可能报错或者解析的结果与MySQL不一致,不推荐使用。 输出格式 G
DB输出为十六进制,MySQL中根据ASCII码表转义,无法转义的输出为空。 主键:MySQL中LONGTEXT类型不支持主键,GaussDB支持。 索引:MySQL中LONGTEXT类型不支持除前缀索引外其他索引方法,GaussDB支持。 外键:MySQL中TINYTEXT类型