首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >金仓数据库KingbaseES的MySQL兼容性说明

金仓数据库KingbaseES的MySQL兼容性说明

原创
作者头像
九章
发布2026-03-04 17:44:46
发布2026-03-04 17:44:46
1270
举报

KingbaseES以内核兼容为基础,通过初始化参数控制,兼容MySQL 数据库,支持MySQL常用功能。KingbaseES对MySQL的兼容性,已从功能兼容阶段过渡到强性能兼容、生态全面兼容阶段,做到在迁移过程中对上层应用透明,实现低成本,低难度,低风险的平滑迁移。

在基础能力方面,KingbaseES兼容SQL语法及PL/SQL过程化语言的语法基础,完成了对数据类型、常用表达式和条件、系统视图、内置函数、DML、DQL语句,以及控制语句、存储过程、函数、触发器、游标,静态SQL、动态SQL等各方面的兼容。在高级能力方面,KingbaseES支持BIT,ENUM类型,SET类型等特殊类型,支持INTERVAL表达式,MySQL的用户变量,REPLACE,INSERT ON DUPLICATE KEY子句,INSERT IGNORE INTO子句,DELETE和UPDATE语句支持LIMIT子句,建表兼容CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP子句,COMMENT子句,多表更新等能力。

主要从以下几个方面介绍 KingbaseES 数据库与 MySQL 数据库的兼容性对比信息:

  • 数据类型
  • 内置函数
  • 系统视图
  • SQL操作
  • PLMySQL操作

数据类型

KingbaseES 数据库兼容大部分 MySQL 数据库中支持的数据类型 。包括KingbaseES数据类型到MySQL数据类型转换,以及MySQL数据类型到KingbaseES数据类型转换。Kingbase 数据库的 MySQL 模式对原生 MySQL 数据库中数据类型的兼容情况如下表所示。

MySQL数据类型兼容情况说明

序号

MySQL数据类型

KingbaseES兼容情况

1

BIT

兼容

2

BOOL

兼容

3

TINYINT

兼容

4

SMALLINT

兼容

5

MEDIUMINT

兼容

6

INT

兼容

7

BIGINT

兼容

8

DECIMAL

兼容

9

NUMERIC

兼容

10

FLOAT

兼容

11

DOUBLE

兼容

12

DATE

兼容

13

TIME

兼容

14

DATETIME

兼容

15

TIMESTAMP

兼容

16

YEAR

兼容

17

CHAR

兼容

18

VARCHAR

兼容

19

BINARY

兼容

20

VARBINARY

兼容

21

BLOB

兼容

22

TEXT

兼容

23

TINYBLOB

兼容

24

TINYTEXT

兼容

25

MEDIUMBLOB

兼容

26

MEDIUMTEXT

兼容

27

LONGBLOB

兼容

28

LONGTEXT

兼容

29

ENUM

兼容

30

SET

兼容

31

JSON

兼容

内置函数

KingbaseES 数据库兼容大部分 MySQL 数据库中支持的内置函数 。

数值函数

MySQL数值函数兼容说明

序号

MySQL函数名

KingbaseES是否兼容

功能简要说明

1

ABS

兼容

绝对值

2

ACOS

兼容

反余弦

3

ASIN

兼容

反正弦

4

ATAN

兼容

反正切

5

ATAN2

兼容

返回两个变量的反正切

6

CEIL

兼容

返回大于或等于 n 的最小整数

7

CEILING

兼容

返回大于或等于 n 的最小整数

8

COS

兼容

返回余弦

9

COT

兼容

返回余切

10

DIV

兼容

整除

11

DEGREES

兼容

把弧度转化为角度

12

EXP

兼容

返回自然常数 e 指定数值的次方

13

FLOOR

兼容

返回等于或小于 n 的最大整数

14

LN

兼容

返回参数的自然对数

15

LOG

兼容

返回指定数字,指定底数的对数

16

LOG10

兼容

返回指定数字以10为底的对数

17

MOD

兼容

取余数

18

PI

兼容

返回π值

19

POWER

兼容

计算a的b次幂并返回结果

20

RADIANS

兼容

把角度 dp 转为弧度。

21

RAND

兼容

生成范围 0.0 <= x < 1.0 中的随机值

22

ROUND

兼容

将数字四舍五入到指定的小数位数

23

SIGN

兼容

返回指定数字的符号

24

SIN

兼容

正弦值

25

SQRT

兼容

返回数字的平方根

26

TAN

兼容

正切值

字符串函数

MySQL字符串函数兼容说明

序号

MySQL函数名

KingbaseES是否兼容

功能简要说明

1

BIT_LENGTH

兼容

返回字符串位长度

2

CHAR_LENGTH, CHARACTER_LENGTH

兼容

返回字符串的字符数

3

CONCAT

兼容

拼接多个字符串

4

CONCAT_WS

兼容

通过指定分隔符来拼接多个字符串

5

FIND_IN_SET

兼容

返回第二个参数中第一个参数的索引(位置)

6

FROM_BASE64

兼容

解码Base64编码的字符串, 并以二进制字符串的形式返回结果

7

ISNULL

兼容

判断表达式 expr 为 NULL,则返回值 1,非空返回 0

8

LCASE

兼容

将字符串转为小写

9

LOCATE

兼容

返回子字符串在字符串中第一次出现的位置索引

10

LOWER

兼容

将字符串转为小写

11

LPAD

兼容

在字符串左侧填充指定的字符串,使其达到指定的长度

12

MID

兼容

返回一个字符串指定位置指定长度的子串

13

OCTET_LENGTH

兼容

返回字符串以字节为单位的长度

14

POSITION

兼容

返回指定子串在指定字符串第一次出现的位置

15

REGEXP_LIKE

兼容

判断一个字符串是否和一个正则表达式匹配

16

REGEXP_REPLACE

兼容

将匹配正则表达式模式的子串替换为新文本

17

REPEAT

兼容

指定字符串重复指定次数并返回新串

18

REPLACE

兼容

将字符串中出现的所有子串替换为新的子串

19

RIGHT

兼容

返回字符串最右边指定数量的字符子串

20

RPAD

兼容

在字符串右侧填充指定的子串,使其达到指的长度

21

SUBSTRING

兼容

从一个字符串中返回指定位置指定长度的子串

22

SUBSTRING_INDEX

兼容

返回字符串中指定间隔符出现在指定次数之前的子串

23

TO_BASE64

兼容

返回字符串以base-64形式编码的字符串表示

24

TRIM

兼容

删除字符串前导和尾随的指定字符或者空格

25

UCASE

兼容

将字符串转为大写

26

UPPER

兼容

将字符串转换为大写

日期函数

MySQL日期函数兼容说明

序号

MySQL函数名

KingbaseES是否兼容

功能简要说明

1

ADDDATE

兼容

指定日期/时间加上指定的时间间隔

2

ADDTIME

兼容

指定时间上加上指定的时间间隔

3

CONVERT

兼容

将输入的 expr 转化为固定的 type 类型

4

CONVERT_TZ

兼容

将一个时区的时候转换为另一个时区的时间

5

CURDATE

兼容

返回当前系统的日期

6

CURRENT_DATE

兼容

返回当前系统的日期

7

CURRENT_TIME

兼容

返回系统时间

8

CURRENT_TIMESTAMP

兼容

返回系统日期时间

9

CURTIME

兼容

返回当前系统的时间

10

DATE_ADD

兼容

从日期时间上加上指定的时间间隔

11

DATE_SUB

兼容

从日期时间上减去指定的时间间隔

12

DATEDIFF

兼容

返回两个日期值之间的天数

13

DAY

兼容

返回指定日期的月份的日期值

14

DAYNAME

兼容

返回指定日期的星期名称

15

DAYOFMONTH

兼容

返回指定日期的月份的日期

16

DAYOFWEEK

兼容

返回给定日期的星期索引

17

DAYOFYEAR

兼容

返回给定日期所在当前年份中的第几天

18

FORMAT_PICO_TIME

兼容

将皮秒值转换为带单位指示符的文本字符串

19

FROM_DAYS

兼容

将天数值转换为日期

20

FROM_UNIXTIME

兼容

将unix时间戳转化为以当前会话时区表示的日期时间值

21

GET_FORMAT

兼容

返回指定的国家地区时间输出格式

22

HOUR

兼容

返回给定时间的小时部分

23

LOCALTIME

兼容

返回系统日期时间

24

LOCALTIMESTAMP

兼容

返回系统日期时间

25

LAST_DAY

兼容

计算日期所在月份的最后一天

26

MAKEDATE

兼容

返回指定年份第 n 天的日期值

27

MAKETIME

兼容

返回由参数指定组成的时间值

28

MICROSECOND

兼容

返回指定时间的微秒值

29

MINUTE

兼容

返回指定时间的分钟值

30

MONTH

兼容

返回指日期的月份值

31

MONTHNAME

兼容

返回指日期的月份名称

32

PERIOD_ADD

兼容

指定年月上加上指定的月份数

33

PERIOD_DIFF

兼容

计算两个年月值相差的月份数

34

QUARTER

兼容

返回日期的季度数

35

SECOND

兼容

返回指定日期时间的秒值

36

SEC_TO_TIME

兼容

将秒数转换为时分秒格式并返回

37

SUBTIME

兼容

指定时间上减去指的的时间间隔

38

TIME

兼容

返回给定日期的时间部分

39

TIMEDIFF

兼容

计算两个时间的差值

40

TIMESTAMP

兼容

将日期时间值n1与时间值n2相加并返回TIMESTMAP 类型值

41

TIMESTAMPADD

兼容

将指定时间间隔加到日期时间值上

42

TIMESTAMPDIFF

兼容

返回两个日期时间的时间间隔

43

TIME_FORMAT

兼容

按照指定的格式格式化时间

44

TIME_TO_SEC

兼容

将输入的时间转换为秒数

45

TO_DAYS

兼容

将指定日期转换为距离0年的天数

46

TO_SECONDS

兼容

返回日期时间值 n 距离 0 年的秒数

47

UNIX_TIMESTAMP

兼容

将 DATE、 TIMESTAMP、 TIME类型的n或指定格式的数值 n 转换为对应 UTC日期时间

48

UTC_DATE

兼容

获取当前服务器的 utc 日期(即格林威治标准日期)

49

UTC_TIME

兼容

获取当前服务器的 utc 时间(即格林威治标准时间)

50

UTC_TIMESTAMP

兼容

获取当前服务器的utc日期时间(即格林威治标准日期时间)

51

WEEK

兼容

返回日期位于当年的第几周

52

WEEKDAY

兼容

返回指定日期的星期索引

53

WEEKOFYEAR

兼容

返回指定日期的所在周数值

54

YEARWEEK

兼容

返回指定日期的年份与日期所在当年周数值

窗口函数

MySQL窗口函数兼容说明

序号

函数名

KingbaseES是否兼容

功能简要说明

1

CUME_DIST

兼容

返回当前行的累积分布

2

DENSE_RANK

兼容

返回所在分区内的排名

3

FIRST_VALUE

兼容

返回当前关联窗口的第一行

4

LAG

兼容

返回当前行所在分区内当前行之前指定行之内的值

5

LAST_VALUE

兼容

返回当前关联窗口的最后一行

6

LEAD

兼容

返回当前行所在分区内当前行后之指定行之内的值

7

NTH_VALUE

兼容

从当前行关联窗口的指定一行中返回评估值

8

NTILE

兼容

将当前行所在分区内的所有行尽可能平均分成指定数量的区间

9

PERCENT_RANK

兼容

返回当前行所在分区内的相对排名

10

RANK

兼容

返回当前行所在分区内的排名

11

ROW_NUMBER

兼容

返回当前行所在分区内的序号

JSON函数

MySQL JSON函数兼容说明

序号

函数名

KingbaseES是否兼容

功能简要说明

1

JSON_ARRAY

兼容

返回包含所有参数的JSON数组。KingbaseES还提供了其他参数,可以指定结果为NULL的行为,返回的结果数据类型,详见JSON_ARRAY

2

JSON_EXTRACT

兼容

功能都是在JSON数组中提取路径表达式指定的数据,详见 JSON_EXTRACT

3

JSON_OBJECT

兼容

返回由参数指定的所有键值对的JSON对象。此外,KingbaseES JSON_OBJECT函数还支持另外两种语法 ,参见 JSON_OBJECT

4

JSON_TABLE

兼容,但有差异

从指定JSON数组中提取数据并返回一个包含指定列的关系表。KingbaseES和MySQL函数参数有所不同,详见JSON_TABLE

系统视图

KingbaseES 数据库兼容大部分 MySQL 数据库中支持的系统视图 。

KingbaseES 数据库兼容 MySQL 数据库的信息模式视图列表如下:

信息模式视图

视图名

用途

CHARACTER_SETS

用于列出KES数据库支持的字符集编码及字符集编码的相关信息。

COLUMNS

包含数据库中有关所有表列(或视图列)的信息。

KEY_COLUMN_USAGE

记录键列包含的约束信息(键列为表达式除外)。

PARAMETERS

提供有关存储例程(存储过程和存储函数)的参数以及函数的返回值的信息。

ROUTINES

该视图提供有关存储例程(存储过程和存储函数)的信息。

COLUMN_PRIVILEGES

该临时表提供列级别权限的信息。

ENABLED_ROLES

该视图提供当前会话中可用角色的信息。

TABLE_CONSTRAINTS

该视图提供了表具有的约束。

TABLE_PRIVILEGES

该临时表提供表级别权限的信息。

TRIGGERS

该视图提供了有关触发器的信息。

TABLES

数据库中表的相关信息。

VIEWS

关于数据库中视图(view)的相关信息。

SCHEMATA

提供了数据库的相关信息。

PROCESSLIST

指示当前由服务器内执行的线程集执行的操作。

REFERENTIAL_CONSTRAINTS

当前数据库中外键约束的的信息。

COLLATIONS

提供有关每个字符集的排序规则的信息。

COLLATION_CHARACTER_SET_APPLICABILITY

指示什么字符集适用于什么排序规则。

ROLE_TABLE_GRANTS

有关当前启用的角色可用或由当前启用的角色授予的角色的表权限的信息。

ROLE_COLUMN_GRANTS

有关当前启用的角色可用或由当前启用的角色授予的角色的列权限的信息。

ROLE_ROUTINE_GRANTS

有关当前启用的角色可用或由当前启用的角色授予的角色的例程权限的信息。

ADMINISTRABLE_ROLE_AUTHORIZATIONS

提供哪些适用于当前用户或角色的角色可以授予其他用户或角色。

APPLICABLE_ROLES

有关适用于当前用户的角色的信息。

CHECK_CONSTRAINTS

CREATE TABLE允许表和列check约束,该视图提供了有关这些约束的信息。

VIEW_ROUTINE_USAGE

对视图定义中使用的存储函数信息的访问

VIEW_TABLE_USAGE

对视图定义中使用的表和视图信息的访问。

PARTITIONS

记录关于表分区的信息。

SQL语法

KingbaseES 数据库支持 MySQL 数据库中绝大部分的 SQL 语法 。

常量

MySQL常量兼容性说明

序号

常量名

KingbaseES是否支持

1

字符值

支持

2

数值

支持

3

时间值

支持

4

十六进制值

支持

5

位字段值

支持

6

布尔值

支持

7

空值

支持

操作符

MySQL操作符兼容性说明

序号

操作符

KingbaseES是否支持

1

算术操作符

+

支持

-

支持

*

支持

/

支持

%

支持

MOD

支持

DIV

支持

2

逻辑操作符

NOT

支持

!

支持

AND

支持

&&

支持

OR

支持

||

支持

XOR

支持

3

位操作符

|

支持

&

支持

<<

支持

>>

支持

~

支持

^

支持

4

比较操作符

==

支持

<=>

支持

<>

支持

!=

支持

<

支持

>

支持

>=

支持

<=

支持

5

集合操作符

UNION [ALL]

支持

INTERSECT [ALL]

支持

EXCEPT [ALL]

支持

条件比较

MySQL条件比较兼容性说明

序号

条件比较

KingbaseES是否支持

1

[NOT]BETWEEN ... AND

支持

2

[NOT]EXISTS(subquery)

支持

3

[NOT]IN

支持

4

IS [NOT] NULL

支持

5

[NOT] LIKE

支持

数据对象类型

MySQL数据对象类型兼容性说明

序号

数据对象类型

KingbaseES是否支持

1

支持

2

表空间

支持

3

视图

支持

4

序列

支持

5

自定义函数、存储过程

支持

6

支持

7

索引

支持

8

物化视图

支持

9

触发器

支持

10

隐含列

支持

11

约束

支持

12

外部表

支持

13

DBLINK

支持

14

用户、角色

支持

SQL语句

MySQL语句兼容性说明

序号

SQL语句

KingbaseES支持情况

1

CALL语句

支持

2

DO语句

支持(有差异)

3

EXCEPT、INTERSECT、UNION 语句

支持

4

INSERT ... SELECT

支持

5

INSERT ... SET

支持

6

INSERT ... ON DUPLICATE KEY UPDATE

支持

7

INSERT DELAYED

不支持

8

UPDATE ... ORDER BY/LIMIT

支持

9

LOAD DATA

支持

10

REPLACE INTO

支持

11

SELECT ... LIMIT

支持

12

SELECT ... INTO

支持

13

SELECT ... JOIN

支持

14

包含等号操作符的子查询

支持

15

包含比较操作符的子查询

支持

16

包含ANY、IN、SOME的子查询

支持

17

包含ALL的子查询

支持

18

行子查询

支持

19

包含EXISTS、NOT EXISTS的子查询

支持

20

包含对外层查询表引用的子查询

支持

21

包含FROM子句的子查询

支持

22

TABLE语句

支持

23

UPDATE语句

支持

24

VALUES语句

支持

25

WITH AS语句

支持

26

START TRANSACTION

支持

27

COMMIT、ROLLBACK

支持

28

SAVEPOINT、ROLLBACK TO SAVEPOINT、RELEASE SAVEPOINT

支持

29

LOCK/UNLOCK INSTANCE

不支持

30

LOCK/UNLOCK TABLE

支持

31

SET TRANSACTION

支持

32

ALTER/CREATE/DROP USER/ROLE

支持

33

GRANT/REVOKE

支持

34

SET ROLE

支持

35

SET PASSWORD FOR

不支持

36

ALTER/CREATE/DROP RESOURCE GROUP

支持

37

ANALYZE TABLE

支持

38

CHECK/CHECKSUM TABLE

不支持

39

SET、RESET语句

支持

40

SHOW语句

支持(有差异)

41

EXPLAIN语句

支持

42

CREATE/ALTER ... COMMENT 'String'

支持

43

CREATE TABLE ... ON UPDATE

支持

PLMySQL语法

KingbaseES 数据库支持 MySQL 数据库中绝大部分的 PLMySQL 语法。

数据类型

PLMySQL数据类型兼容性说明

序号

数据类型

KingbaseES支持情况

1

游标

支持

对象

PLMySQL对象兼容性说明

序号

对象

KingbaseES支持情况

1

触发器

支持

2

存储过程

支持

3

函数

支持

语句

PLMySQL语句兼容性说明

序号

语句

KingbaseES支持情况

1

BEGIN..END复合语句

支持

2

DECLARE变量语句

支持

3

异常语句

支持

4

CASE 语句

支持

5

IF语句

支持

6

ITERATE语句

支持

7

LEAVE语句

支持

8

LOOP语句

支持

9

REPEAT语句

支持

10

RETURN语句

支持

11

WHILE 语句

支持

12

标签语句

支持

13

Cursor DECLARE语句

支持

14

Cursor OPEN语句

支持

15

Cursor FETCH语句

支持

16

Cursor CLOSE语句

支持

17

赋值语句

支持

18

select语句

支持

19

select into语句

支持

20

注释语句

支持

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据类型​
  • 内置函数​
    • 数值函数​
    • 字符串函数​
    • 日期函数​
    • 窗口函数​
    • JSON函数​
  • 系统视图​
  • SQL语法​
    • 常量​
    • 操作符​
    • 条件比较​
    • 数据对象类型​
    • SQL语句​
  • PLMySQL语法​
    • 数据类型​
    • 对象​
    • 语句​
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档