全部产品

SQL限制说明

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

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。