检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
比较操作符返回结果显示不同。MySQL返回1/0;GaussDB返回t/f。 表1 操作符 序号 MySQL数据库 GaussDB数据库 差异 1 <> 支持,但有差异。 MySQL支持索引,GaussDB不支持索引。 2 <=> 支持,但有差异。 MySQL支持索引,GaussDB不支持索引、hash连接和合并连接。
SELECT、USAGE、UPDATE、ALTER、DROP、COMMENT MySQL中通过'dbname.*'表示模式层级的授权对象;在M-Compatibility中,使用'{DATABASE | SCHEMA} dbname'表示模式层级的授权对象。 MySQL中用户名为两部分:用户名@主机名;M-Compatibility当前仅支持用户名。
TABLE CREATE TABLE带CHECK约束的时候,MySQL8.0会生效,MySQL5.7只解析语法但不生效。GaussDB在此功能上同步MySQL8.0版本,且GaussDB CHECK约束可以引用其他列,而MySQL不能。 GaussDB 一个表中最多只能加32767个CHECK约束。
TABLE CREATE TABLE带CHECK约束的时候,MySQL8.0会生效,MySQL5.7只解析语法但不生效。GaussDB在此功能上同步MySQL8.0版本,且GaussDB CHECK约束可以引用其他列,而MySQL不能。 GaussDB 一个表中最多只能加32767个CHECK约束。
比较操作符返回结果显示不同。MySQL返回1/0;GaussDB返回t/f。 表1 操作符 序号 MySQL数据库 GaussDB数据库 差异 1 <> 支持,但有差异。 MySQL支持索引,GaussDB不支持索引。 2 <=> 支持,但有差异。 MySQL支持索引,GaussDB不支持索引、hash连接和合并连接。
SELECT、USAGE、UPDATE、ALTER、DROP、COMMENT MySQL中通过'dbname.*'表示模式层级的授权对象;在M-Compatibility中,使用'{DATABASE | SCHEMA} dbname'表示模式层级的授权对象。 MySQL中用户名为两部分:用户名@主机名;M-Compatibility当前仅支持用户名。
当查询语句不带from子句时,GaussDB支持带where子句,与MySQL8.0保持一致,MySQL5.7不支持。 -- GaussDB m_db=# SELECT 1 WHERE true; 1 --- 1 (1 row) -- MySQL5.7 mysql> SELECT 1 WHERE true;
ssDB中输出结果为t/f,MySQL为1/0,BOOLEAN类型实际映射为TINYINT类型。 49 子查询 SELECT GaussDB不支持子查询结果包含多列,包含多列时执行会报错;MySQL支持子查询包含多列。 MySQL的行为: mysql> SELECT row(1,2)
务块中使用,MySQL无限制。 6 锁机制 锁机制 MySQL获取read锁后,当前会话无法进行写操作,M-Compatibility获取read锁后,当前会话可以进行写操作。 MySQL给表上锁后,读取其他表报错,M-Compatibility无限制。 MySQL同一会话中获取
务块中使用,MySQL无限制。 6 锁机制 锁机制 MySQL获取read锁后,当前会话无法进行写操作,M-Compatibility获取read锁后,当前会话可以进行写操作。 MySQL给表上锁后,读取其他表报错,M-Compatibility无限制。 MySQL同一会话中获取
数字操作函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 log2() 支持 小数位显示与MySQL存在差异,受GaussDB浮点数据类型限制,可通过参数extra_float_digits控制小数位个数显示; 由于输入精度内部处理差异,GaussDB与MySQL会存在结果计算差异;
utf8mb4字符集下默认字符序为utf8mb4_general_ci,与MySQL5.7保持一致。 使用latin1字符序需要设置兼容性参数m_format_dev_version = 's2'。 表1 排序规则列表 序号 MySQL数据库 GaussDB数据库 1 utf8mb4_general_ci
支持。 - 22 JSON_UNQUOTE() 支持,有差异。 在转义字符中\0和\uxxxx的场景与MySQL有差异: SELECT JSON_UNQUOTE('"\0"'); mysql> SELECT JSON_UNQUOTE('"\0"'); ERROR 3141 (22032):
视图中对于整型的类型回显,不支持指定精度范围。如MySQL的bigint(1),M-Compatibility下对应的是bigint类型,MySQL中bigint(21) unsigned,在M-Compatibility下对应的是bigint unsigned类型。 MySQL中int类型,在M-Co
UNIX_TIMESTAMP() 支持 返回值与MySQL有差异,GaussDB返回的是numeric,MySQL返回的是int。 53 UTC_DATE() 支持 MySQL支持无括号调用,GaussDB不支持。MySQL入参整型值会按照一字节最大值255整数回绕。 MySQL入参只支持0-6整数,
JDBC JDBC接口参考 父主题: 驱动
与MySQL兼容性说明 分布式版 集中式版
结果与MySQL有差异但是字符编码与MySQL是一致的。 8 LOCATE() 支持 入参1为bytea类型,入参2为text类型时,GaussDB与MySQL行为存在差异。 9 MAKE_SET() 支持 bits参数为整型时,最大范围支持到int128,低于MySQL范围。
信息函数 表1 信息函数列表 序号 MySQ数据库 GaussDB数据库 差异 1 LAST_INSERT_ID() 支持 - 父主题: 系统函数
系统函数 GaussDB数据库兼容绝大多数MySQL的系统函数,但存在部分差异。只能使用M-Compatibility兼容模式下的系统函数,不能使用原GaussDB的系统函数,避免产生非预期的结果。当前存在原GaussDB的系统函数和MySQL系统函数同名,但是M-Compatibi