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等

results matching ""

    No results matching ""