分区的修改

修改分区信息

语法格式

分区的修改 - 图1

该语法项可用于将未分区表进行分区,也可以用于修改已分区表的分区信息。其中,’PARTITION BY NOTHING’用以清除表上的分区信息。各项参数说明可以参考ALTER TABLE章节和PARTITION BY章节。

修改分区物理归属地

语法格式如下:

分区的修改 - 图2

  • partition_name

分区名称。

  • table_name

表名称。

  • opt_locate_in

物理归属地属性。具体参考LOCATE IN章节。

分区修改示例

创建表格t5,并对主键列进行分区。

> CREATE TABLE t5 (c1 INT, c2 STRING, c3 INT, PRIMARY KEY(c1, c2));

CREATE TABLE

> ALTER TABLE t5 PARTITION BY RANGE(c1)(

​ PARTITION p1 VALUES FROM (0) TO (100),

​ PARTITION p2 VALUES FROM (100) TO (200)

);

ALTER TABLE

-- 等价于

> CREATE TABLE t5 (c1 INT, c2 STRING, c3 INT, PRIMARY KEY(c1, c2) PARTITION BY RANGE (c1) (

PARTITION p1 VALUES FROM (0) TO (100),

PARTITION p2 VALUES FROM (100) TO (200)

);

CREATE TABLE

修改表格t5分区信息。

> ALTER TABLE t5 PARTITION BY LIST(c1)(

PARTITION p1 VALUES IN(“tianjin”,”Tianjin”,”tj”,”TJ”) LOCATE IN “tianjin”,

PARTITION p2 VALUES IN(“beijing”,”Beijing”,”bj”,”BJ”) LOCATE IN “beijing”

);

ALTER TABLE

表t5中按照c1列分区,值为tianjin、Tianjin、tj或TJ的记录都落在标签为tianjin的节点上;值为beijing、Beijing、bj或BJ的记录都落在标签为beijing的节点上。

添加表t5归属地信息。

> ALTER TABLE t5 LOCATE IN “guangzhou”;

ALTER TABLE

删除表t5归属地信息。

> ALTER TABLE t5 LOCATE IN “”;

ALTER TABLE

修改表t5中分区p2的物理归属地信息。

> ALTER PARTITION p2 OF TABLE t5 LOCATE IN “guangzhou”;

ALTER TABLE

修改表t5的分区p2,满足分区要求的数据落在标签为guangzhou的节点上。

删除表t5中分区p2的物理归属地信息。

> ALTER PARTITION p2 OF TABLE t5 LOCATE IN “”;

ALTER TABLE

表t5的分区p2,删除掉物理归属地信息。

删除表t5分区信息。

> ALTER TABLE t5 PARTITION BY NOTHING;

ALTER TABLE