全部产品
云市场

SQL 限制说明

更新时间:2019-08-23 14:48:46

SQL 限制说明

DRDS 列式存储高度兼容 MySQL 协议和语法,但仍存在 SQL 使用限制。本 SQL 限制说明适用于使用 DRDS 列式存储的只读实例及其主实例。

SQL 兼容性

SQL 大类限制

  • 暂不支持用户自定义数据类型、自定义函数。
  • 暂不支持视图、存储过程、触发器、游标。
  • 暂不支持临时表。
  • 暂不支持 BEGIN…END、LOOP…END LOOP、REPEAT…UNTIL…END REPEAT、WHILE…DO…END WHILE 等复合语句。
  • 暂不支类似 IF ,WHILE 等流程控制类语句。

数据类型限制

不支持的数据类型

ENUM, SET, SPATIAL, JSON,BIT

支持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。