
# HASH-HASH
#### 约束与限制
- HASH类型的分区表的定义可以省略，如果指定了PARTITIONS num，默认创建num个分区定义，否则一般情况默认会创建1个分区定义。
- 对于二级分区，如果要省略分区定义，需要所有的子分区都不能给出定义，否则都要指定分区定义。
 
#### 语法
创建一个或多个HASH-HASH分区表，其中每个分区可能有一个或一个以上的子分区。
```
CREATE TABLE [ schema. ]table_name
 table_definition
   PARTITION BY [LINEAR] HASH(expr) [PARTITIONS num]
   SUBPARTITION BY [LINEAR] HASH(expr) [SUBPARTITIONS sub_num]
   [partition_definition [, partition_definition] ...];
```
其中，partition_definition为：
```
PARTITION partition_name
    (subpartition_definition [, subpartition_definition] ...)
```
subpartition_definition为：
```
SUBPARTITION subpartition_name
```
表1参数说明 
| **参数名称**          | **描述**                                 |
|:---|:---|
| table_name        | 要创建的表名称。                               |
| expr              | 分区字段表达式，目前只支持INT类型，不支持字符类型。            |
| num               | 用于分区是HASH或者KEY类型的分区表，来指定分区个数。          |
| sub_num           | 用于二级分区是HASH或者KEY类型的分区表，来指定单个分区的子分区的个数。 |
| partition_name    | 分区名称，同一个表中不可重复。                        |
| subpartition_name | 子分区名称， 同一个表中不可重复。                      |
   
#### 使用示例
**HASH-HASH类型的使用示例**
```
CREATE TABLE tbl_hash_hash
(
    col1 INT,
    col2 INT,
    col3 varchar(20),
    col4 DATE
)
PARTITION BY HASH(col1) PARTITIONS 9
   SUBPARTITION BY HASH(col2) SUBPARTITIONS 3;
```
