使用限制
最近更新时间: 2024-10-17 17:10:00
TDSQL分布式实例中所编写的SQL语句中凡是包含shardkey、parition、distributed by等关键字的会交由proxy处理,语句的剩余部分会发送到DB, 按照MYSQL语法执行。所有TDSQL分布式SQL不支持使用DELAYED和LOW_PRIORITY,不支持对于变量的引用和操作,比如 SET @c=1, @d=@c+1; SELECT @c, @d等。具体限制项请参考以下两小节。
TDSQL大类限制
不支持自定义函数、事件、表空间
不支持触发器、游标
不支持外键
不支持复合语句,例如:BEGIN END,LOOP,UNION的语句
不支持主备同步相关的SQL语言
分区需使用TDSQL分区语法建立分区
TDSQL小语法限制
TDSQL分布式实例不支持DDL、DML、管理SQL语言的部分语法,具体限制如下:
DDL
不支持CREATE TABLE ... SELECT
不支持CREATE/DROP/ALTER SERVER
不支持CREATE/DROP/ALTER LOGFILE GROUP
不支持ALTER对分表键进行改名,但可以修改类型
不支持RENAME
DML
不支持SELECT INTO OUTFILE/INTO DUMPFILE/INTO var_name
不支持query_expression_options,如:HIGH_PRIORITY/STRAIGHT_JOIN/SQL_SMALL_RESULT/SQL_BIG_RESULT/SQL_BUFFER_RESULT/SQL_CACHE/SQL_NO_CACHE/SQL_CALC_FOUND_ROWS
不支持窗口函数
不支持非SELECT的子查询
不支持不带列名的INSERT/REPLACE
不支持不带WHERE条件的UPDATE/DELETE
不支持LOAD DATA/XML
不支持SQL中使用DELAYED和LOW_PRIORITY
不支持SQL中对于变量的引用和操作,比如 SET @c=1, @d=@c+1; SELECT @c, @d
不支持INDEX_HINT
不支持HANDLER/DO
管理SQL语句
不支持ANALYZE/CHECK/CHECKSUM/OPTIMIZE/REPAIR TABLE,需要用透传语法
不支持CACHE INDEX
不支持FLUSH
不支持LOAD INDEX INTO CACHE
不支持RESET
不支持SHUTDOWN
不支持SHOW BINARY LOGS/BINLOG EVENTS
不支持SHOW WARNINGS/ERRORS和LIMIT/COUNT的组合