SQL 简介
本 SQL 参考手册主要介绍 DRDS 最新版本的 SQL 语句及其语法。
SQL 兼容性
DRDS 高度兼容 MySQL 协议和语法,但由于分布式数据库和单机数据库存在较大的架构差异,存在 SQL 使用限制。相关兼容性和 SQL 限制描述如下。
SQL 大类限制
- 暂不支持用户自定义数据类型、自定义函数。
- 暂不支持视图、存储过程、触发器、游标。
- 暂不支持临时表。
- 暂不支持 BEGIN…END、LOOP…END LOOP、REPEAT…UNTIL…END REPEAT、WHILE…DO…END WHILE 等复合语句。
- 暂不支类似 IF ,WHILE 等流程控制类语句。
小语法限制
DDL
- CREATE TABLE tbl_name LIKE old_tbl_name 不支持拆分表。
- CREATE TABLE tbl_name SELECT statement 不支持拆分表。
- 暂不支持同时 RENAME 多表。
- 暂不支持 ALTER TABLE 修改拆分字段。
- 暂不支持跨Schema的DDL, 例如, CREATE TABLE db_name.tbl_name (… )。
DML
- 暂不支持 SELECT INTO OUTFILE/INTO DUMPFILE/INTO var_name。
- 暂不支持 STRAIGHT_JOIN 和 NATURAL JOIN。
- 暂不支持 DELETE 使用子查询和 ORDER BY/LIMIT。
- 暂不支持 跨分片 DELETE 使用 ORDER BY/LIMIT。
- 暂不支持 跨分片 DELETE 多表中的数据。
- 暂不支持 UPDATE 使用子查询。
- 暂不支持 跨分片 UPDATE 使用 ORDER BY/LIMIT。
- 暂不支持 跨分片 UPDATE 多表。
- 暂不支持 INSERT DELAYED Syntax。
- 暂不支持 SQL 中对于变量的引用和操作,比如 SET @c=1, @d=@c+1; SELECT @c, @d。
- 暂不支持在柔性事务中 INSERT / REPLACE / UPDATE / DELETE 广播表。
子查询
子查询相关细节可参考文档,以下简单罗列不支持的情况:
- 不支持 HAVING 子句中的子查询,JOIN ON 条件中的子查询。
- 等号操作行符的标量子查询(The Subquery as Scalar Operand)不支持 ROW 语法。
数据库管理
- SHOW WARNINGS Syntax 不支持 LIMIT/COUNT 的组合。
- SHOW ERRORS Syntax 不支持 LIMIT/COUNT 的组合。
运算符
- 暂不支持 ‘:=’ 赋值运算符。
函数
关键字
- 暂不支持 MILLISECOND。
- 暂不支持 MICROSECOND。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论