云数据库 GAUSSDB-ALTER TABLE SUBPARTITION:语法格式
语法格式
- 修改表分区主语法。
ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name )} action [, ... ];
其中action统指如下分区维护子语法。add_clause | drop_clause | split_clause | truncate_clause
- add_clause子语法用于为指定的分区表添加一个或多个分区。语法可以作用在一级分区上。
ADD {partition_less_than_item | partition_list_item } [ ( subpartition_definition_list ) ]
也可以作用在二级分区上。
MODIFY PARTITION partition_name ADD subpartition_definition
其中,分区项partition_less_than_item为RANGE分区定义语法,具体语法如下。
PARTITION partition_name VALUES LESS THAN ( partition_value | MAXVALUE ) [ TABLESPACE tablespacename ]
分区项partition_list_item为LIST分区定义语法,具体语法如下。PARTITION partition_name VALUES ( partition_value [, ...] | DEFAULT ) [ TABLESPACE tablespacename ]
subpartition_definition_list为1到多个二级分区subpartition_definition对象,subpartition_definition具体语法如下。
SUBPARTITION subpartition_name [ VALUES LESS THAN ( partition_value | MAXVALUE ) | VALUES ( partition_value [, ...] | DEFAULT )] [ TABLESPACE tablespace ]
若一级分区为HASH分区,不支持以ADD形式新增一级分区;若二级分区为HASH分区,不支持以MODIFY形式新增二级分区。
- drop_clause子语法用于删除分区表中的指定分区。语法可以作用在一级分区上。
DROP PARTITION { partition_name | FOR ( partition_value ) } [ UPDATE GLOBAL INDEX ]
也可以作用在二级分区上。
DROP SUBPARTITION { subpartition_name | FOR ( partition_value, subpartition_value ) } [ UPDATE GLOBAL INDEX ]
- 若一级分区为HASH分区,不支持删除一级分区;若二级分区为HASH分区,不支持删除二级分区。
- 不支持删除唯一子分区。
- split_clause子语法用于把一个分区切割成多个分区。
SPLIT SUBPARTITION { subpartition_name} { split_point_clause } [ UPDATE GLOBAL INDEX ]
指定Range分区策略切割点split_point_clause的语法为:
AT ( subpartition_value ) INTO ( SUBPARTITION subpartition_name [ TABLESPACE tablespacename ] , SUBPARTITION subpartition_name [ TABLESPACE tablespacename ] )
指定List分区策略切割点split_point_clause的语法为:VALUES ( subpartition_value ) INTO ( SUBPARTITION subpartition_name [ TABLESPACE tablespacename ] , SUBPARTITION subpartition_name [ TABLESPACE tablespacename ] )
- 切割点的大小要位于正在被切割的分区的分区键范围内。
- 只能把一个分区切割成两个新分区。
- Range分区策略切割点是把当前分区以此切割点分割为两个分区(小于此分割点为一个分区,大于此分割点为另一个分区),所以Range分区策略切割点只能为一个。List分区策略切割点可以为多个,但不超过64个,即把这些切割点从当前分区的边界值提取出来作为一个新分区,当前分区剩余边界值作为另一个新分区。
- List分区只支持切割Default分区。
- truncate_clause子语法用于清空分区表中的指定分区。
TRUNCATE SUBPARTITION { subpartition_name } [ UPDATE GLOBAL INDEX ]
二级分区执行truncate_clause时,会获取主表的AccessExclusiveLock,阻塞对该表的执行操作。
- GaussDB数据库SQL语法_SQL语法_CREATE_ALTER
- BPM流程_BPM的书写格式_BPM产品介绍
- GaussDB版本查询_华为云GaussDB的作用_高斯数据库版本查询_华为云
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- 日志分析_日志结构化_日志格式化
- 连接RDS for MySQL数据库_华为云数据库RDS_语法_数据库连接_连接命令
- TaurusDB并行查询_TaurusDB内核_TaurusDB并行执行_PQ
- GaussDB主键生成_GaussDB存储过程_高斯数据库主键生成_华为云
- GaussDB Core_gaussdb内核_高斯数据库Core_华为云
- GaussDB数据库产品特性_华为gaussdb_高斯语法