检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
分差异。只能使用M-Compatibility兼容模式下的系统函数,不能使用原GaussDB的系统函数,避免产生非预期的结果。当前存在原GaussDB的系统函数和MySQL系统函数同名,但是M-Compatibility兼容模式下尚未支持这些函数的情况;一部分未支持的同名函数会提
式转换为int类型后的值依次比较。 -- '1970-01-01'和'1970-01-02'转换为int类型时都为1970(兼容MySQL模式下,转换时遇到非法字符后忽略,将前面部分转换为int类型),比较结果为相等,因此返回结果为true。 gaussdb=# select '1970-01-01'
字符串函数 表1 字符串函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 BIN() 支持 函数入参1支持类型存在差异,GaussDB入参1支持类型如下: 整数类型:tinyint、smallint、mediumint、int、bigint 无符号整数类型:tinyint
行的DDL、DML或DCL语句也会建立事务的一致性读快照 GaussDB的START TRANSACTION支持设置多次隔离级别/事务访问模式/开启一致性快照,覆盖生效。 4 SET设置用户变量 SET @var_name := expr MySQL用户变量名支持使用转义字符或双
DCL 表1 DCL语法兼容介绍 序号 概述 详细语法说明 差异 1 SET NAMES指定COLLATE字句 SET [ SESSION | LOCAL ] NAMES {'charset_name' [COLLATE 'collation_name'] | DEFAULT};
其他函数 表1 其他函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 DATABASE() 支持。 - 2 UUID() 支持。 - 3 UUID_SHORT() 支持。 - 父主题: 系统函数
dcf_run_mode 参数说明:DCF选举模式。包含自动选举模式、手动选举模式和去使能选举模式。目前去使能选举模式只限定少数派恢复场景使用,修改会导致数据库实例不可用。 实例在正常状态下进行工作模式切换才能保证切换后工作正常。GUC参数设置和cm_ctl设置的DCF工作模式需要保持一致,即两者需要同步设置为DCF手动或自动模式。
参数说明:当一个被引用对象没有指定模式时,此参数设置模式搜索顺序。 参数类型:字符串 参数单位:无 取值范围:由一个或多个模式名构成的字符串,不同的模式名用逗号隔开。 设置为'"$user",public'时,支持共享数据库(没有用户具有私有模式和所有共享使用public),用户私有模式和这些功能的组
JSON数据类型 表1 JSON数据类型 序号 MySQ数据库 GaussDB数据库 1 JSON 不完全兼容 父主题: 数据类型
ALTER、DROP、COMMENT MySQL中通过'dbname.*'表示模式层级的授权对象;在M-Compatibility中,使用'{DATABASE | SCHEMA} dbname'表示模式层级的授权对象。 MySQL中用户名为两部分:用户名@主机名;M-Compatibility当前仅支持用户名。
字符集 GaussDB数据库支持指定数据库、模式、表或列的字符集,支持的范围如下。 表1 字符集列表 序号 MySQL数据库 GaussDB数据库 1 utf8mb4 支持 2 utf8 支持 3 gbk 支持 4 gb18030 支持 5 binary 支持 utf8和utf8
1) AND ROW(2,2); ERROR: un support type m_db=# SELECT ROW(NULL) AS x; x ---- () (1 row) MySQL: mysql> SELECT (1,2) <=> row(2,3); +--------------------+
在跨sql_mode模式建表时,MySQL受宽松模式和严格模式控制,GaussDB可能存在严格模式失效的情况。 例如:源表存在默认值“0000-00-00”,在“no_zero_date”严格模式下,GaussDB建表成功,且包含默认值“0000-00-00”,严格模式失效;而MySQL建表失败,受严格模式控制。
日时为非法值,在严格模式下报error;在宽松模式,当输入为字符串或数字时,报warning,输入为date或datetime类型时视为上一年12月或上一月最后一日处理。 对于cast函数,转换为date、datetime时,严格模式下会报error。宽松模式下不会报warnin
在跨sql_mode模式建表时,MySQL受宽松模式和严格模式控制,GaussDB可能存在严格模式失效的情况。 例如:源表存在默认值“0000-00-00”,在“no_zero_date”严格模式下,GaussDB建表成功,且包含默认值“0000-00-00”,严格模式失效;而MySQL建表失败,受严格模式控制。
dcf_run_mode 参数说明:DCF选举模式,包含自动选举模式、手动选举模式和去使能选举模式。目前去使能选举模式只限定少数派恢复场景使用,修改会导致数据库实例不可用。 集群在正常状态下进行工作模式切换才能保证切换后工作正常。GUC参数设置和cm_ctl设置的DCF工作模式需要保持一致,即两者需要同步设置为DCF手动或自动模式。
),GaussDB返回整型,MySQL5.7返回DECIMAL。该情况下会导致嵌套场景时,floor函数作为内层函数存在差异。 -- 宽松模式下: SET m_format_behavior_compat_options='enable_precision_decimal'; CREATE
强制转换函数 表1 强制转换函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 CAST() 支持 由于函数执行机制不同,flags无法传递给内层函数,在cast函数嵌套其他函数(如greatest、least等)时,内层函数返回小于1的值,结果与MySQL不一致。
强制转换函数 表1 强制转换函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 CAST() 支持 GaussDB不支持使用CAST(expr AS CHAR[(N)] charset_info或者CAST(expr AS NCHAR[(N)])转换字符集。 GaussDB支持使用CAST(expr
JSON类型 表1 JSON数据类型 序号 MySQL数据库 GaussDB数据库 差异 1 JSON 支持,存在差异。 GaussDB支持JSON数据类型与MySQL相比,规格存在如下差异: 取值范围: 在MySQL中,JSON数据类型的最大长度为4GB,但在GaussDB中,