DELETE
常用语法
DELETE
FROM tbl_name [WHERE where_condition]
语法限制
原则上where_condition部分只能允许出现简单的条件,不支持计算表达式以及子查询。
INSERT
常用语法
INSERT [INTO] tbl_name (col_name[,col_name]...)
{VALUES|VALUE} (value_list)[,(value_list)]...
[ON DUPLICATE KEY UPDATE assignment_list]
语法限制
- 不支持不带分片键的insert语句插入。
- 不支持insert set使用。
- 不支持 INSERT DELAYED Syntax。
SELECT
- 暂不支持 SELECT INTO OUTFILE/INTO DUMPFILE/INTO var_name。
SELECT JOIN 语法
DRDS 的 JOIN 查询可下推的 JOIN 主要分为以下几类:
- 单表(即非分片表)之间的 JOIN。
- 参与 JOIN 的表在过滤条件中均带有分片键作为条件,并且分片算法相同(即通过分片算法计算的数据分布在相同分片上)。
- 参与 JOIN 的表均按照分片键作为 JOIN 条件,并且分片算法相同。
- 全局表与分片表之间的 JOIN。
SELECT UNION 语法
- 使用union关键字的sql,要求其中涉及的分片表的分片规则及配置参数一致,使用union all关键字的sql则无此要求。
- 分片表不支持union/union all与聚合函数、limit、groupby、having、orderby等关键字联用。
- 不支持分片表和全局表union。
SELECT Subquery 语法
Comparisons Using Subqueries
Subqueries with ANY, IN, NOT IN, SOME,ALL,Exists,NOT Exists
语法限制:
- 不支持标量子查询 The Subquery as Scalar Operand。
- 部分支持提取表 Subqueries in the FROM Clause。
UPDATE
常用语法
UPDATE table_reference
SET assignment_list
[WHERE where_condition]
语法限制
- 原则上where_condition部分只能允许出现简单的条件,不支持计算表达式以及子查询。
不支持的DML语法列举
- 不支持 REPLCAE语法。
- 不支持 INSERT DELAYED Syntax。
支持的系统库查询
- SELECT version() 。