首批通过分布式安全可靠测评,为关键业务系统打造
修改表组的 SHARDING 属性
更新时间:2026-03-19 13:09:28
创建表组后,根据业务调整,可以修改表组的 SHARDING 属性。
使用限制
OceanBase 数据库升级过程中,禁止使用 ALTER TABLEGROUP 语句修改表组的 SHARDING 属性。
修改规则
修改表组的 SHARDING 属性时,需要先查看表组内是否存在表,以及表组内表的分区信息,查看表组内的表的具体操作请参见 查看表组信息。
根据查询结果,如果表组内没有表,则可以任意修改表组的 SHARDING 属性。如果表组内已有表,则需要遵循以下修改规则:
将表组的
SHARDING属性修改为NONE时,不需要考虑表组内表的分区定义,可以直接修改。将表组的
SHARDING属性修改为PARTITION时:如果表组内的所有表都是非分区表,则可以直接修改。
如果表组内同时有非分区表和分区表,则无法修改。
如果表组内仅有一级分区表或二级分区表,则要求表组内所有表的一级分区对应的分区类型、分区个数及分区值均相同,否则无法修改。
将表组的
SHARDING属性修改为ADAPTIVE时:如果表组内的所有表都是非分区表,则可以直接修改。
如果表组内同时有非分区表和分区表,则无法修改。
如果表组内同时有一级分区表和二级分区表,则无法修改。
如果表组内全部是一级分区表,则要求所有一级分区表对应分区类型、分区个数、分区值均相同。
如果表组内全是二级分区表,则要求所有一级分区表和二级分区表对应分区类型、分区个数、分区值均相同。
修改表组属性
修改表组 SHARDING 属性的 SQL 语句如下:
ALTER TABLEGROUP tablegroup_name tablegroup_option;
tablegroup_option:
SHARDING = 'NONE'
SHARDING = 'PARTITION'
SHARDING = 'ADAPTIVE'
语句使用说明:
执行该语句需要确保当前用户拥有全局
ALTER权限。tablegroup_name:待修改的表组名。SHARDING:表组属性。修改表组属性时,需要遵循修改规则。
修改表组属性的示例如下:
创建一个
SHARDING属性为PARTITION的表组tblgroup1。CREATE TABLEGROUP tblgroup1 SHARDING = 'PARTITION';创建两个分区定义相同的一级分区表
tbl1和tbl2,并加入到表组tblgroup1。CREATE TABLE tbl1 (col1 BIGINT PRIMARY KEY,col2 VARCHAR(50)) TABLEGROUP = tblgroup1 PARTITION BY LIST(col1) (PARTITION p0 VALUES IN (1, 2, 3), PARTITION p1 VALUES IN (5, 6), PARTITION p2 VALUES IN (DEFAULT) );CREATE TABLE tbl2 (col1 BIGINT PRIMARY KEY,col2 VARCHAR(50)) TABLEGROUP = tblgroup1 PARTITION BY LIST(col1) (PARTITION p0 VALUES IN (1, 2, 3), PARTITION p1 VALUES IN (5, 6), PARTITION p2 VALUES IN (DEFAULT) );将表组
tblgroup1的SHARDING属性修改为ADAPTIVE。ALTER TABLEGROUP tblgroup1 SHARDING = "ADAPTIVE";查看表组属性。
SHOW TABLEGROUPS WHERE tablegroup_name = 'tblgroup1';结果如下:
+-----------------+------------+---------------+----------+ | Tablegroup_name | Table_name | Database_name | Sharding | +-----------------+------------+---------------+----------+ | tblgroup1 | tbl1 | test | ADAPTIVE | | tblgroup1 | tbl2 | test | ADAPTIVE | +-----------------+------------+---------------+----------+ 2 rows in set表组内的表
tbl1和tbl2全部是一级分区表,且分区类型、分区个数、分区值均相同,符合修改规则,SHARDING属性修改成功。