分布式数据库中间件 DDM-不支持的特性和使用限制:SQL语法使用限制
时间:2024-09-26 16:09:41
SQL语法使用限制
SELECT
- 不支持DISTINCTROW。
- 不支持[HIGH_PRIORITY]、[STRAIGHT_JOIN]、 [SQL_SMALL_RESULT]、 [SQL_BIG_RESULT] 、[SQL_BUFFER_RESULT] 、[SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]等选项放在DDM实例下面。
- 不支持SELECT ... GROUP BY ... WITH ROLLUP语句。
- 不支持SELECT ... ORDER BY ... WITH ROLLUP语句。
- 不支持WITH语句。
- 不支持不同排序规则的联表查询。
- 不支持窗口函数。
- SELECT FOR UPDATE仅支持简单查询,不支持join、group by、order by、limit等语句。用于修饰FOR UPDATE的[NOWAIT | SKIP LOCKED]选项对于DDM无效。
- 对于UNION中的每个SELECT, DDM暂不支持使用多个同名的列。
排序与Limit
LIMIT/OFFSET参数支持范围为0-2147483647。
聚合
不支持group by语句后添加asc或desc函数来实现排序语义。
- DDM自动忽略group by后的asc或desc关键字。
- MySQL 8.0.13以下版本支持group by后添加asc或desc函数来实现排序语义,8.0.13及以上版本已废弃该用法,使用时会报语法错误。推荐使用order by语句来保证排序语义。
子查询
- 不支持与grand parent query产生关联关系的子查询。
- 不支持HAVING子句中的子查询,JOIN ON 条件中的子查询。
- Derived Tables 必须拥有一个别名。
- Derived Tables 不可以成为 Correlated Subqueries,即不能包含子查询外部表的引用。
LOAD DATA语法限制
- 不支持LOW_PRIORITY。
- 不支持CONCURRENT。
- 不支持PARTITION (partition_name [, partition_name] ...)。
- 不支持LINES STARTING BY 'string'。
- 不支持用户变量。
- ESCAPED BY 只支持'\\'。
- 如果导入数据时没有指定自增键的值,DDM不会填充自增值,自增能力使用的是底层DN的自增能力,因此自增值会重复。
- 如果主键或者唯一索引值经过路由后不在同一张物理表,REPLACE不生效。
- 如果主键或者唯一索引值经过路由后不在同一张物理表,IGNORE不生效。
- 不支持对含有全局二级索引的表执行LOAD DATA的操作。
INSERT 和 REPLACE
- 不支持INSERT DELAYED...。
- 不支持不包含拆分字段的INSERT。
- 暂不支持PARTITION语法,建议不要使用partition表。
- INSERT操作不支持datetime(YYYY-MM-DD HH:MM:SS)中“YYYY”取值1582年及之前年份。
- INSERT不支持ON DUPLICATE KEY UPDATE 关联子查询列。
INSERT INTO t1(a, b) SELECT * FROM(SELECT c, d FROM t2 UNION SELECT e, f FROM t3) AS dtest ON DUPLICATE KEY UPDATE b = b + c;
示例ON DUPLICATE KEY UPDATE语句中引用了子查询列c。
- INSERT和REPLACE不支持拆分键值为DEFAULT关键字。
UPDATE和DELETE
- 不支持更新拆分键值为DEFAULT的关键字。
- 不支持在一个语句中对同一字段重复更新。
- 不支持关联更新拆分键。
UPDATE tbl_1 a, tbl_2 b set a.name=b.name where a.id=b.id;
示例中“name”为tbl_1的拆分键。
- 不支持通过INSERT ON DUPLICATE KEY UPDATE更新拆分键。
- 不支持自关联更新。
UPDATE tbl_1 a, tbl_1 b set a.tinyblob_col=concat(b.tinyblob_col, 'aaabbb');
- 不支持含有JSON类型字段的二级拆分表进行带子查询的拆分键更新。
- 不支持不带关联条件的关联更新。
- 关联更新不支持在目标列的赋值语句或表达式中引用其它目标列。
UPDATE tbl_1 a, tbl_2 b SET a.name=concat(b.name, 'aaaa'),b.name=concat(a.name, 'bbbb') ON a.id=b.id;
- 对拆分字段的更新,将转换成delete+insert两个阶段操作,操作中间不保证其它涉及到这张表中的拆分字段值的查询语句的一致性。
support.huaweicloud.com/productdesc-ddm/ddm_01_0174.html
看了此文的人还看了
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格
推荐文章
- 云日志服务的使用限制_云日志服务_使用限制说明
- GaussDB数据库SQL语法_SQL语法_CREATE_ALTER
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- GaussDB数据库产品特性_华为gaussdb_高斯语法
- 数据库和应用迁移UGO_数据库迁移上云_云数据库
- 云数据库和普通数据库_免费数据库软件_数据库软件有哪几种
- 云数据库 RDS for MySQL与华为云其他服务的关系
- GaussDB入门_GaussDB数据库_高斯数据库视图
- GaussDB gsql使用_gaussdb介绍_gaussdb用法_gaussdb教程
- 什么是媒体处理_媒体处理功能特性_媒体处理使用