本章节包含以下内容:
MySQL 兼容特性概览
相关技术资源
通常,异构数据库移植的工作量繁重。这些工作量主要来源于:在数据类型、SQL 语言、PL/SQL 语言、甚至客户端应用编程接口等诸多方面对两个数据库所进行的、大量的语法或功能的对齐处理。
同样的,从 MySQL 向 KingbasES 移植的情况也如此。为降低移植工作量,KingbaseES 在其内部实现了部分的 MySQL 兼容特性。这些特性从语法或功能上对 MySQL 提供了原生支持。因此,在移植过程中,MySQL 程序只需很少甚至不做任何改动就能在 KingbaseES 环境中运行。
此外,对未提供原生支持的 MySQL 功能,KingbaseES 也给出了相应的移植建议。
数据类型是描述数据库系统底层信息资源模式的常用手段。通常,两个数据库系统数据类型的兼容好坏直接影响移植的难易程度。KingbaseES 对 MySQL 的基本数据类型如数值类型(整型、浮点型、定点数类型)、文本字符串类型(CHAR、VARCHAR、TINYTEXT、MEDIUMTEXT、LONGTEXT)、位类型、日期时间类型 (YEAR、TIME、DATE、DATETIME、TIMESTAMP)、枚举类型、集合类型、二进制类型(BINARY、VARBINARY、BLOB)、JOSN 类型(JOSN 对象、JSON 数组)可以原生支持,或者通过转换进行支持。
在 KingbasES 中,对大多数常用的 MySQL 特有 SQL 语句均提供了原生支持。这项措施使得 MySQL 应用程序在 KingbaseES 系统中通常只需很少的代码变动就可正常运行。
KingbaseES 主要兼容如下 MySQL 的 SQL 语句:
insert ... set 语句
select...limit 语句
replace into 语句
on duplicate key update 语句
KingbaseES 支持如下 MySQL 过程化语言的常用语法:
赋值语句
IF 语句
CASE 语句
循环语句
EXECUTE 语句
动态 SQL
KingbaseES 支持如下 MySQL 过程化语言对象:
内置标量函数
触发器
匿名块
存储过程
函数
在实际应用中,通常客户 DDL 脚本和报表是通过 SQL 交互工具移植的。针对这种情况,KingbaseES 提供了如下 SQL 交互工具:
ksql:命令行的 SQL 交互工具,类似 MySQL 的 命令行。
Kstudio:图形化的 SQL 交互工具,类似 MySQL 的图形化工具。
通过上述工具,用户可连接数据库服务器,运行数据库实用程序,发送 SQL 语句,运行 SQL 脚本,或运行 KingbaseES 数据库管理命令实施数据库管理等。
本指南重点从语句兼容特性、迁移工具、迁移场景和应用程序移植等几方面描述 MySQL 移植的关键技术和实现方式。在每项技术和实现方式的描述上,本指南只提供有限的内容介绍,并未提供全面的细节说明。所以,
用户若需了解某些技术的实现细节还请参照相关的技术资料,这些资料诸如:
KingbaseES 数据库管理员指南:详尽和全方位地介绍如何高效管理 KingbaseES 数据库系统。其中,这些管理诸如用户管理、存储管理、模式对象管理等。
KingbaseES 开发指南:提供了 JDBC、ODBC、DCI 和 ESQL 等应用编程接口的详细使用说明。
KingbaseES 高可用指南:详细描述了系统在高可用方面的支持。