检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
常量与宏 GaussDB(DWS)支持的常量和宏请参见表1。 表1 常量和宏 参数 描述 相关SQL语句示例 CURRENT_CATALOG 当前数据库 1 SELECT CURRENT_CATALOG; CURRENT_ROLE 当前角色 1 SELECT CURRENT_ROLE;
常量与宏 GaussDB(DWS)支持的常量和宏请参见表1。 表1 常量和宏 参数 描述 相关SQL语句示例 CURRENT_CATALOG 当前数据库 1 SELECT CURRENT_CATALOG; CURRENT_ROLE 当前角色 1 SELECT CURRENT_ROLE;
常量与宏 GaussDB(DWS)支持的常量和宏请参见表1。 表1 常量和宏 参数 描述 相关SQL语句示例 CURRENT_CATALOG 当前数据库 1 SELECT CURRENT_CATALOG; CURRENT_ROLE 当前角色 1 SELECT CURRENT_ROLE;
t1; 双引号 MySQL中常量字符串用双引号扩住,GaussDB(DWS)不支持,DSC迁移改为单引号。 输入示例 1 select name from t1 where name = "test2"; 输出示例 1 2 3 4 5 6 SELECT name FROM
MySQL配置 设置MySQL配置参数可在迁移MySQL数据库脚本时自定义迁移工具的行为。 打开config文件夹中的features-mysql.properties文件,并根据实际需要设置features-mysql.properties文件中的配置参数中的参数。 表1 features-mysql
语句中存在“in 常量”导致SQL执行无结果 问题现象 简单的大表过滤的SQL语句中有一个“in 常量”的过滤条件,常量的个数非常多(约有2000多个),基表数据量比较大,SQL语句执行无结果。 原因分析 执行计划中,in条件还是作为普通的过滤条件存在。这种场景下,join操作的
MySQL SQL迁移 工具支持从MySQL到GaussDB(DWS)的迁移,包括模式、DML、查询、系统函数、PL/SQL等。 在LINUX中执行MySQL迁移 在Linux中执行以下命令开始迁移。用户需指定源数据库、输入和输出文件夹路径和日志路径;应用程序语言类型是SQL。
MySQL语法迁移 支持的关键词和特性 数据类型 函数和表达式 表(可选参数、操作) 索引 注释 数据库 数据操作语句(DML) 事务管理和数据库管理 父主题: DSC
优化器开销常量 介绍优化器开销常量。这里描述的开销可以按照任意标准度量。只关心其相对值,因此以相同的系数缩放它们将不会对优化器的选择产生任何影响。缺省时,它们以抓取顺序页的开销为基本单位。也就是说将seq_page_cost设为1.0,同时其他开销参数以它为基准设置。也可以使用其他基准,比如以毫秒计的实际执行时间。
优化器开销常量 介绍优化器开销常量。这里描述的开销可以按照任意标准度量。只关心其相对值,因此以相同的系数缩放它们将不会对优化器的选择产生任何影响。缺省时,它们以抓取顺序页的开销为基本单位。也就是说将seq_page_cost设为1.0,同时其他开销参数以它为基准设置。也可以使用其他基准,比如以毫秒计的实际执行时间。
优化器开销常量 介绍优化器开销常量。这里描述的开销可以按照任意标准度量。只关心其相对值,因此以相同的系数缩放它们将不会对优化器的选择产生任何影响。缺省时,它们以抓取顺序页的开销为基本单位。也就是说将seq_page_cost设为1.0,同时其他开销参数以它为基准设置。也可以使用其他基准,比如以毫秒计的实际执行时间。
Oracle、Teradata和MySQL语法兼容性差异 GaussDB(DWS)支持Oracle、Teradata和MySQL三种兼容模式,分别兼容Oracle、Teradata和MySQL语法,不同兼容模式下的语法行为有一些差异。 数据库兼容模型可以在创建数据库时指定(由DB
的数据存储在数据表中。数据表中的每一列都定义了数据类型,用户存储数据时,须遵从这些数据类型的属性,否则可能会出错。下表列出了MySQL数字类型到GaussDB(DWS)的转换示例。 类型对照 表1 数字类型对照表 MySQL数字类型 MySQL INPUT GaussDB(DWS)
注释 MySQL支持由 '#' 或 '--' 字符引起的单行注释,而GaussDB(DWS)仅支持由双破折号 '--' 字符引起的单行注释。DSC工具迁移时会将 '#' 转化为 '--' 注释。 输入示例 1 2 3 4 5 6 7 ## comment sample create
GaussDB(DWS)支持Oracle、Teradata和MySQL数据库兼容模式。 在TD/MySQL兼容模式下,空和NULL是不相等的,在ORA兼容模式下,空和NULL是相等的。因此上述场景可能是因为两个环境中数据库的兼容性模式设置不一致导致。 可通过查询PG_DATABASE系统表确认数据库的兼容模式:
GaussDB(DWS)不支持唯一索引(约束)与主键约束联合使用。DSC工具迁移时会根据GaussDB(DWS)的特性进行相应适配。 MySQL唯一索引(约束)与主键约束联合使用的场景在工具迁移时会与OLAP场景下的分布键构成复杂的关系。工具暂不支持唯一索引(约束)与主键约束联合使用的场景。
唯一索引 普通索引和前缀索引 HASH索引 BTREE索引 SPATIAL空间索引 FULLTEXT全文索引 删除索引 索引重命名 父主题: MySQL语法迁移
MODIFY修改列 MySQL使用MODIFY关键字修改列数据类型、设置非空约束。DSC工具迁移时会根据GaussDB(DWS)的特性进行相应适配。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 CREATE
数据库 在MySQL中,DATABASE 是一种模式对象,等同于Oracle、GaussDB(DWS)数据库的SCHEMA概念。DSC工具迁移时考虑了以下两个场景。 创建数据库 输入示例 create database IF NOT EXISTS dbname1 CHARACTER
TRUNCATE 删除表 ROUNDROBIN表 RENAME 重命名表名 设置与清除列默认值 字段名重命名 行列存压缩 添加与删除列 父主题: MySQL语法迁移