3.9 其他不支持语句
- Compound-Statement Syntax
- Replication Statements
- DDL:
- 不支持客户端针对database的操作语句,如alter database、drop database。create database 在客户端遇到会判断schema已经配置后返回ok,否则报错。
- 不支持管理端针对database的操作语句,如alter database。
- 不支持create table时的一些table option,如DATA DIRECTORY、ALGORITHM等,table option在alter table时也不能修改
- 不支持ALTER TABLE ... LOCK ...
- 不支持ALTER TABLE ... ORDER BY ...
- 不支持create table ... select ...
- 库名、表名不可修改,拆分字段的名称和类型都不可以变更
- 不支持外键关联
- 不支持临时表
- 不支持分布式级别的存储过程和自定义函数
- 不支持触发器
- DML:
- 对于INSERT... VALUES(expr),不支持expr中含有子查询
- 支持部分INSERT... SELECT...举例
<shardingTable name="test10" shardingNode="dn2,dn3,dn4" function="hash-three" shardingColumn="id"/> <shardingTable name="test11" shardingNode="dn2,dn3,dn4" function="hash-three" shardingColumn="id"/> <shardingTable name="test12" shardingNode="dn3,dn4" function="hash-two" shardingColumn="id"/> <singleTable name="test20" shardingNode="dn2" /> <singleTable name="test22" shardingNode="dn1" /> <globalTable name="test30" shardingNode="dn1,dn2,dn3,dn4" /> <globalTable name="test31" shardingNode="dn1,dn2,dn3,dn4" />
- 同一类型的有相同节点的表都支持,如insert into test10(id,name) select id,name from test11; insert into test30(id,name) select id,name from test31;
- 不同类型的表不支持,如 insert into test30(id,score) select id,score from test10;
- 同一类型的但是节点不同的表不支持, 如insert into test20(id,score) select id,score from test22;insert into test10(id,score) select id,score from test12;
- 不支持不包含拆分字段的INSERT语句
- 不支持HANDLER语句
- 不支持修改拆分字段的值
- 不支持DELETE ... ORDER BY ... LIMIT ...
- 不支持DELETE/UPDATE ...LIMIT路由到一个分片表的多个节点
- 不支持DO语句
- 查询:
- 不支持select ... use/ignore index ...
- 不支持select ... group by ... with rollup
- 不支持select ... for update | lock in share mode 正确语义
- 不支持select ... into outfile ...
- 不支持Row Subqueries
- 不支持select ... union [all] select ... order by ...,可写成(select ...) union [all] (select ...) order by ...
- 不支持session变量赋值与查询,如set @rowid=0;select @rowid:=@rowid+1,id from user;
- 管理语句:
- 不支持用户管理及权限管理语句
- 不支持表维护语句,包括ANALYZE/CHECK/CHECKSUM/OPTIMIZE/REPAIR TABLE
- 不支持INSTALL/UNINSTALL PLUGIN语句
- 不支持BINLOG语句
- 不支持CACHE INDEX/ LOAD INDEX INTO CACHE语句
- 不支持除FLUSH TABLES [WITH READ LOCK]以外的其他FLUSH语句,FLUSH TABLE也仅语法支持无实际意义
- 不支持RESET语句
- 不支持大部分的运维SHOW语句,如SHOW PROFILES、SHOW ERRORS等