Creating Partitioned Tables
Creating a Partitioned Table
- partType: describes the partitioning policy of a partitioned table. The options are RANGE, INTERVAL, LIST, and HASH.
- partKey: describes the partition key of a partitioned table. Currently, range and list partitioning supports a partition key with up to 16 columns, while interval and hash partitioning supports a one-column partition key only.
- partExpr: describes the specific partitioning type of a partitioned table, that is, the mapping between key values and partitions.
CREATE TABLE [ IF NOT EXISTS ] partition_table_name ( [ /* Inherited from the CREATE TABLE statement of an ordinary table */ { column_name data_type [ COLLATE collation ] [ column_constraint [ ... ] ] | table_constraint | LIKE source_table [ like_option [...] ] }[, ... ] ] ) [ WITH ( {storage_parameter = value} [, ... ] ) ] [ COMPRESS | NOCOMPRESS ] [ TABLESPACE tablespace_name ] /* Range partitioning. If the INTERVAL clause is declared, interval partitioning is used. */ PARTITION BY RANGE (partKey) [ INTERVAL ('interval_expr') [ STORE IN (tablespace_name [, ... ] ) ] ] ( partition_start_end_item [, ... ] partition_less_then_item [, ... ] ) /* List partitioning */ PARTITION BY LIST (partKey) ( PARTITION partition_name VALUES (list_values_clause) [ TABLESPACE tablespace_name [, ... ] ] ... ) /* Hash partitioning */ PARTITION BY HASH (partKey) ( PARTITION partition_name [ TABLESPACE tablespace_name [, ... ] ] ... ) /* Enable or disable row migration for a partitioned table. */ [ { ENABLE | DISABLE } ROW MOVEMENT ];
- Range and list partitioning supports a partition key with up to 16 columns. Interval and hash partitioning supports a one-column partition key only. All subpartitioning types support a one-column partition key only.
- Interval partitioning supports only partition keys of the time/date data type and interval partitions cannot be created in a level-2 partitioned table.
- The partition key value cannot be null except for hash partitioning. Otherwise, the DML statement reports an error. The only exception is the MAXVALUE partition defined for a range partitioned table and the DEFAULT partition defined for a list partitioned table.
- The maximum number of partitions is 1048575, which can meet the requirements of most service scenarios. If the number of partitions increases, the number of files in the system increases, which affects the system performance. It is recommended that the number of partitions for a single table be less than or equal to 200.
Creating a Level-2 Partitioned Table
CREATE TABLE [ IF NOT EXISTS ] subpartition_table_name ( [ /* Inherited from the CREATE TABLE statement of an ordinary table */ { column_name data_type [ COLLATE collation ] [ column_constraint [ ... ] ] | table_constraint | LIKE source_table [ like_option [...] ] } [, ... ] ] ) [ WITH ( {storage_parameter = value} [, ... ] ) ] [ COMPRESS | NOCOMPRESS ] [ TABLESPACE tablespace_name ] /* Level-2 partition definition */ PARTITION BY {RANGE | LIST | HASH} SUBPARTITOIN BY {RANGE | LIST | HASH} ( PARTITION partition_name partExpr… /* Partition */ ( SUBPARTITION partition_name partExpr … /* Subpartition */ SUBPARTITION partition_name partExpr … /* Subpartition */ ), PARTITION partition_name partExpr… /* Partition */ ( SUBPARTITION partition_name partExpr … /* Subpartition */ SUBPARTITION partition_name partExpr … /* Subpartition */ ), … ) [ { ENABLE | DISABLE } ROW MOVEMENT ];
- Subpartitioning support a combination of any two of the list, hash, and range partitioning methods.
- Subpartitioning supports only a single partition key.
- Subpartitioning does not support interval partitions.
- Subpartitioning supports a maximum of 1048575 partitions.
Modifying Partition Attributes
- ADD PARTITION
- DROP PARTITION
- TRUNCATE PARTITION
- SPLIT PARTITION
- MERGE PARTITION
- MOVE PARTITION
- EXCHANGE PARTITION
- RENAME PARTITION
/* Basic ALTER TABLE syntax */ ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name )} action [, ... ];
For details about how to use the ALTER TABLE statement, see Partitioned Table O&M Management and sections "ALTER TABLE PARTITION and ALTER TABLE SUBPARTITION" in "SQL Reference > SQL Syntax" of Developer Guide.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.