MySQL 兼容性

MatrixOne 的 SQL 语法兼容了 MySQL 8.0.23 版本。

语句类型语法兼容性
数据定义语言(Data Definition Language,DDL)CREATE DATABASE不支持中文命名的表名
支持部分拉丁语
CHARSETCOLLATEENCRYPTION 目前可以使用但无法生效
CREATE TABLE暂不支持表的分区
不支持 Create table .. as 语句
不支持列级约束
暂不支持 KEY(column) 语法
支持 AUTO_INCREMENT ,但暂不支持自定义起始值
ALTER暂不支持
DROP DATABASE同 MySQL
DROP TABLE同 MySQL.
CREAT VIEW不支持 with check option 子句
数据操作语言(Data Manipulation Language,DML)UPDATE同 MySQL
DELETE同 MySQL
INSERT暂不支持 LOW_PRIORITYDELAYEDHIGH_PRIORITY
暂不支持使用 INSERT INTO VALUES 函数或表达式
支持批量插入,最多支持 160,000 行
暂不支持 ON DUPLICATE KEY UPDATE
暂不支持 DELAYED
不分支持拉丁文命名
当前的 SQL 模式同 MySQL 中的 only_full_group_by模式
SELECTGROUP BY 中不支持表别名
暂不支持 SELECT…FOR UPDATE 从句
部分支持 INTO OUTFILE
LOAD DATA支持导入 csv 和 jsonline 文件
包括符 enclosed 应该为””
字段分隔符 FILEDS TERMINATED BY 应该为 “,” 或 “
行分隔符 LINES TERMINATED BY 应该为 “\n”
支持 SET,但仅支持 SET columns_name=nullif(expr1,expr2)
不支持本地关键词
不支持 ESCAPED BY
JOIN同 MySQL
SUBQUERY暂不支持 Non-scalar 子查询,但可以作为过滤条件使用
数据库管理语句SHOW部分支持
工具类语句Explain分析的结果与 MySQL 有所不同
不支持 json 类型的输出
Other statements暂不支持
数据类型Boolean与 MySQL 的布尔值类型 int 不同,MatrixOne 的布尔值是一个新的类型,它的值只能是 true 或 false。
Int/Bigint/Smallint/Tinyint同 MySQL
char/varchar同 MySQL
Float/double与 MySQL 的精度有所不同
DECIMAL最大精度为 38 位。
Date只支持 YYYY-MM-DDYYYYMMDD 形式
Datetime只支持 YYYY-MM-DD hh:mi:ssssssYYYYMMDD hh:mi:ssssss 形式
Timestamp同 MySQL
Other types暂不支持
运算符“+”,”-“,”*”,”/“同 MySQL
DIV, %, MOD同 MySQL
LIKE同 MySQL
IN只支持常数列表
NOT, AND, &&,OR, “||”同 MySQL
CAST支持不同转换规则。
FunctionsMAX, MIN, COUNT, AVG, SUM同 MySQL
any_valueAny_value 是 MatrixOne 中的一个聚合函数。不能在 GROUP 或过滤条件中使用。
正则表达式REGEXP_INSTR()REGEXP_LIKE()REGEXP_REPLACE()REGEXP_SUBSTR() 暂不支持第三个参数
to_date对于日期的入参仅支持常量
系统命令SHOW GRANTS FOR USERS目前只能看到直接授权的角色所具有的权限,继承角色的权限不能显示