
# 创建表
![](https://support.huaweicloud.com/usermanual-ddm/public_sys-resources/note_3.0-zh-cn.png)
- 禁止创建表名以"_ddm"为前缀的表，系统默认认定此类表为系统内部表。
- 拆分表不支持全局唯一索引，当唯一键和拆分键不一致时，不能保证数据的唯一性。
- 建议使用bigint型作为自增键的数据类型。tinyint、smallint、mediumint、integer、int数据类型不建议作为自增键的类型，容易越界造成值重复。
- 用户创建表需指定字符集和字符序，避免因为逻辑库字符序和DN默认字符序不同导致表之间的字符序不一致问题。
- 针对单表、广播表和分库不分表逻辑表名长度不超过63，针对分库分表由于物理表会拼接序号，物理表名长度不超过63。
 
#### 分库分表
假设使用HASH的拆分库算法，拆分表算法为MOD_HASH，样例如下：
```
CREATE TABLE tbpartition_tbl (
id bigint NOT NULL AUTO_INCREMENT COMMENT '主键id',
name varchar(128),
PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
DBPARTITION BY HASH(id)
TBPARTITION BY mod_hash(name) tbpartitions 8;
```
#### 分库不分表
假设使用HASH的拆分库算法，样例如下：
```
CREATE TABLE dbpartition_tbl (
id bigint NOT NULL AUTO_INCREMENT COMMENT '主键id',
name varchar(128),
PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
DBPARTITION BY HASH(id);
```
#### 广播表
如下为创建广播表的样例：
```
CREATE TABLE broadcast_tbl (
id bigint NOT NULL AUTO_INCREMENT COMMENT '主键id',
name varchar(128),
PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
BROADCAST;
```
#### 单表
单表也可以指定全局序列，但是会忽略这个功能。自增功能使用底层存储的自增值进行自增。
创建单表样例如下，不做任何拆分：
```
CREATE TABLE single(
id bigint NOT NULL AUTO_INCREMENT COMMENT '主键id',
name varchar(128),
PRIMARY KEY(id)
) 
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
```
