SQL 限制说明
SQL 限制说明
DRDS 列式存储高度兼容 MySQL 协议和语法,但仍存在 SQL 使用限制。本 SQL 限制说明适用于使用 DRDS 列式存储的只读实例及其主实例。
SQL 兼容性
SQL 大类限制
- 暂不支持用户自定义数据类型、自定义函数。
- 暂不支持视图、存储过程、触发器、游标。
- 暂不支持临时表。
- 暂不支持 BEGIN…END、LOOP…END LOOP、REPEAT…UNTIL…END REPEAT、WHILE…DO…END WHILE 等复合语句。
- 暂不支类似 IF ,WHILE 等流程控制类语句。
数据类型限制
不支持的数据类型
支持Unsigned的数值类型
TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT
数据精度限制
DECIMAL、NUMERIC 最大精度是18位
主键的长度限制是 1024 byte,超出则异常
小语法限制
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 (… )。
- ALTER语句暂不支持修改CHARSET和COLLATE
- ALTER语句暂不支持对于不同类型之间的转换,目前只支持从小类型到大类型的转换. 例如,
TINYINT->SMALLINT->MEDIUMINT->INT->BIGINT
FLOAT->DOUBLE
TINYTEXT->TEXT->MEDIUMTEXT->LONGTEXT - ALTER语句暂不支持修改字段长度减少
- DECIMAL类型的字段暂不支持ALTER语句修改
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 语法。
运算符
- 暂不支持 ‘:=’ 赋值运算符。
函数
关键字
- 暂不支持 MILLISECOND。
- 暂不支持 MICROSECOND。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论