检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
GaussDB与MySQL的JDBC接口定义一致,均遵循业界规范,本章节主要介绍GaussDB数据库的MySQL兼容性B模式与MySQL数据库JDBC接口的行为差异。 获取结果集中的数据 ResultSet对象提供了丰富的方法,以获取结果集中的数据。获取数据常用的方法如表1所示,其他方法请参考JDK官方文档。
字符集 GaussDB数据库支持指定数据库、模式、表或列的字符集,支持的范围如下。 表1 字符集列表 MySQL数据库 GaussDB数据库 utf8mb4 支持 gbk 支持 gb18030 支持 目前GaussDB对不属于当前字符集的非法字符未执行严格的编码逻辑校验,可能导致
sec) 表1 日期与和时间函数列表 MySQL数据库 GaussDB数据库 差异 ADDDATE() 支持,存在差异 此函数的表现会因为interval表达式的差异与MySQL有差异,具体可见INTERVAL差异说明。 ADDTIME() 支持,存在差异 MySQL对第二入参为
数据类型、JAVA变量类型以及JDBC类型索引关系如下: 兼容模式 GaussDB数据类型 JAVA变量类型 JDBC类型索引 ORA/MYSQL oid java.lang.Long java.sql.Types.BIGINT ORA/MYSQL numeric java.math.BigDecimal
数字操作函数 表1 数字操作函数列表 MySQL数据库 GaussDB数据库 差异 log2() 支持,存在差异 小数位显示与MySQL存在差异,受GaussDB浮点数据类型限制,可通过参数extra_float_digits控制小数位个数显示。 由于输入精度内部处理差异,Gau
驱动 JDBC 父主题: MySQL兼容性MySQL模式
GaussDB能正常转成浮点型的字符串与整型值进行加、减、乘、除、求余计算,返回值是整型值,MySQL是返回浮点型。 GaussDB除以0会报错,MySQL返回null。 “~”:GaussDB返回负数,MySQL返回8字节无符号整数。 “^”:GaussDB表示次方幂,MySQL表示按位异或。 ENUM('value1'
数据类型、JAVA变量类型以及JDBC类型索引关系如下: 兼容模式 GaussDB数据类型 JAVA变量类型 JDBC类型索引 ORA/MYSQL oid java.lang.Long java.sql.Types.BIGINT ORA/MYSQL numeric java.math.BigDecimal
utf8mb4字符集下默认字符序为utf8mb4_general_ci,与MySQL 5.7保持一致,utf8mb4_0900_ai_ci为utf8mb4的非默认字符序。 GaussDB中utf8和utf8mb4为同一个字符集。 表1 排序规则列表 MySQL数据库 GaussDB数据库 utf8mb4_general_ci
MySQL中需要拥有指定表的任意表级权限(除GRANT OPTION)或者任意列级权限。 GaussDB中临时表存储于独立的临时Schema中,在使用FROM或IN db_name条件来展示指定临时表索引信息时,须指明db_name为临时表所在的Schema才能展示临时表索引
默认值:创建表列时语法上允许设置默认值,MySQL不允许设置默认值。 输入二进制或十六进制字符串时,GaussDB输出为十六进制,MySQL中根据ASCII码表转义,无法转义的输出为空。 主键:MySQL中TINYTEXT类型不支持主键,GaussDB支持。 索引:MySQL中TI
在使用了字符串处理函数后查询就不使用索引,该如何处理? 答:在索引列上使用函数处理后就不会走标准的索引,可以创建一个表达式索引。 示例如下: --建表并插入数据。 gaussdb=# CREATE TABLE tbl_test (c1 varchar); gaussdb=# INSERT
SQL DDL DML DCL 父主题: MySQL兼容性MySQL模式
致。 MySQL的分区表不支持外键,普通表包含外键或其他表引用普通表的外键,则无法进行分区和普通表数据的交换;GaussDB的分区表支持外键,在两个表的外键约束一致时,则可进行分区和普通表数据的交换,GaussDB的分区表不带外键,普通表有其他表引用,如果分区表和普通表表一致,则可进行分区和普通表数据的交换。
执行结果与MySQL也存在差异。 精度 范围0~6,作为表列的类型时缺省为0,与MySQL一致。对于 datetime[(p)] 'str' 表达式场景,GaussDB将(p)作为精度解析,缺省为6,将'str'按照p指定的精度格式化成datetime类型。MySQL不支持datetime[(p)]
'string']分隔符相同。 执行LOAD DATA语法写入表中的数据若无法转换为表中数据类型格式时报错。 指定列时,仅支持指定为列名,不支持指定为用户变量。 LOAD DATA SET表达式中不支持指定列名计算。 若set表达式返回值类型与对应列类型之间不存在隐式转换函数则报错。 LOAD
系统函数兼容性概述 流量控制函数 日期和时间函数 字符串函数 强制转换函数 加密函数 JSON函数 聚合函数 数字操作函数 其他函数 父主题: MySQL兼容性MySQL模式
比较操作符返回结果显示不同。MySQL返回1/0;GaussDB返回t/f。 表1 操作符 MySQL数据库 GaussDB数据库 差异 <> 支持,存在差异 MySQL支持索引,GaussDB不支持索引。 <=> 支持,存在差异 MySQL支持索引,GaussDB不支持索引、hash连接和合并连接。
系统函数兼容性概述 GaussDB数据库兼容绝大多数MySQL的系统函数,但存在部分差异。 除特别说明外,MySQL兼容性MySQL模式中的函数行为默认为GaussDB原生行为。 GaussDB MySQL兼容性的绝大部分系统函数目前均存在返回值与MySQL精度不一致(结果后面0的位数)的问题,
比较操作符返回结果显示不同。MySQL返回1/0;GaussDB返回t/f。 表1 操作符 MySQL数据库 GaussDB数据库 差异 <> 支持,存在差异 MySQL支持索引,GaussDB不支持索引。 <=> 支持,存在差异 MySQL支持索引,GaussDB不支持索引、hash连接和合并连接。