---
title: "新建表 | OceanBase 文档中心"
description: 新建表 概述 在 OceanBase 开发者中心（OceanBase Developer Center，ODC）单击连接名进入连接后，在左侧导航栏中单击 表 标签可查看表列表。在表列表的右上角，单击 + 创建表，或在顶部导航栏中单击 新建 以创建所需的对象。 如上图所示，创建表包含以下 6 个步骤： 设置基本信息。 …
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*lqS5SYzz_YEAAAAAAAAAAAAADiGDAQ/original) 开发者中心 ODCV 3.2.2 企业版

# 新建表

更新时间：2023-09-05 15:16:16

## 概述

在 OceanBase 开发者中心（OceanBase Developer Center，ODC）单击连接名进入连接后，在左侧导航栏中单击 **表** 标签可查看表列表。在表列表的右上角，单击 **+** 创建表，或在顶部导航栏中单击 **新建** 以创建所需的对象。

![新建表](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/3030398361/p364215.png)

如上图所示，创建表包含以下 6 个步骤：

1. 设置基本信息。
 2. 设置列。
 3. 设置分区规则。
 4. 设置索引。
 5. 设置约束。
 6. 点击 **提交** 按钮，等待表生成。

## 操作步骤

### 步骤一：设置基本信息

指定 **表名称** 和表的 **描述** （可选）。 **说明**

在 MySQL 模式下，还需指定 **默认字符集** 和 **默认排序规则** 。

### 步骤二：设置列

如下图所示，添加一列时需指定以下信息：

![image](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/3030398361/p138308.png "image")

| 信息项 | 说明 |
| --- | --- |
| 字段名称 | 指定字段（列）的名称。 |
| 数据类型 | 指定字段（列）的数据类型。 |
| 非空 | 是否限制该字段（列）的值不能为空。 |
| 自增（MySQL 模式下） | 选择是否为自增列。 |
| 缺省值 | 该字段（列）的默认值。 |
| 字段注释 | 对该字段的说明。 |

设置列页面同时提供三个功能键：

| 功能项 | 说明 |
| --- | --- |
| +新建 | 添加一下新字段。 |
| 编辑 | 对选定的字段进行编辑或直接双击单元格进行编辑。 |
| 删除 | 删除当前选中的字段。 |

### 步骤三：设置分区规则

![image](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/3030398361/p138309.png "image")

- OceanBase 中 MySQL 模式支持六种分区方法： **key** 、 **Hash** 、 **Range** 、 **Range_colums** 、 **List** 和 **List_columns** 。
 - Oracle 模式支持三种分区方法： **List** 、 **Range** 和 **Hash** 。

  由于在 MySQL 模式和 Oracle 模式下分区的定义不同，所以以下信息在不同模式下的意义略有不同，请根据所选的分区方法按其定义指定以下信息：

  | 信息项 | 说明 |
  | --- | --- |
  | 分区方法 | 指定分区方法。 MySQL 模式和 Oracle 模式下支持的分区方法不同。 |
  | 字段 | 选择的字段将成为分区键。 |
  | 表达式 | 根据表达式的返回值进行分区（Oracle 模式不支持分区表达式）。 |
  | 分区 | 根据所选的 **分区方法** ，可能需要指定 **分区名称** 、 **分区数量** 、 **区间上限值** 或 **值枚举** 等信息。 可添加多个分区，并拖动它们进行排序。 |

### 步骤四：设置索引

如下图所示，需指定以下信息：

![image](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/3030398361/p138310.png "image")

| 信息项 | 说明 |
| --- | --- |
| 索引名 | 为改索引指定的名字。 |
| 索引范围 | 默认值是 **GLOBAL** （全局索引），只有在设置分区的表后方可指定索引范围是否为 **LOCAL** （局部索引）。 |
| 索引类型 | 索引类型目前只支持 BTree。 |
| 可选字段 | 选择建索引所在的列，需注意索引列的顺序。 |
| 唯一 | 是否唯一索引，即通过索引的方式保证唯一性约束。 |

设置索引页面同时提供三个功能键：

| 功能项 | 说明 |
| --- | --- |
| +新建 | 添加一下新索引。 |
| 编辑 | 对选定的索引进行编辑或直接双击单元格进行编辑。 |
| 删除 | 删除当前选中的索引。 |

### 步骤五：设置约束

![image](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/3030398361/p138311.png "image")

ODC 中支持设置的表级约束包括以下 4 种：

- **主键约束** ：定义一个主键来唯一标识表中的每一行数据。主键约束可为一个字段或是一组字段，一张表中只能设置一个主键约束，且设置完成后不支持编辑。
 - **唯一约束** ：保证在一个字段或者一组字段里的数据在表中是唯一的，一张表中可设置多个唯一约束。
 - **外键约束** ：在两个表的数据之间建立连接（可为一列或多列），旨在保持关联表之间数据的一致性、完整性。设置完成后不支持新增和编辑。
 - **检查约束** ：在编辑数据库数据时，按照设置的检查规则进行校验，校验通过才允许数据修改操作（仅在 Oracle 模式下支持 **检查约束** ）。由于 OceanBase 数据库中 MySQL 模式和 Oracle 模式支持的约束不同，而不同约束所需的信息也略有不同，因此请根据所选的约束方法按页面上的要求指定所需信息：

  | 信息项 | 说明 |
  | --- | --- |
  | 约束名称 | 指定约束的名称。 |
  | 列信息 | 选择一个字段或是一组字段作为约束。 |
  | 是否启用 | 指定创建的约束是否生效。有些情况下，可能需要约束暂不生效，例如导入大量数据时，通过禁用约束可提高效率。 |
  | 可延迟状态 | 支持设置三种延迟状态 **立即验证** 、 **不可延迟** 和 **延迟验证** 。 |
  | 关联schema（Oracle 模式下） | 使用 **外键约束** 时需指定关联表（父表）所在的 Schema。 |
  | 关联数据库（MySQL 模式下） | 使用 **外键约束** 时需指定关联表（父表）所在的数据库。 |
  | 关联表 | 使用 **外键约束** 时需指定关联表（父表）。 |
  | 关联字段 | 使用 **外键约束** 时需指定关联表（父表）。 |
  | 删除 | 指定当关联表（父表）中的数据被删除时，当前表（子表）对应的动作。可指定 **CASCADE** 、 **NO ACTION****、****RESTRICT** 和 **SET NULL** 等四种对应的动作。 MySQL 和 Oracle 模式下所支持的外键动作不同： * MySQL 模式下，OceanBase 可指定 CASCADE、NO ACTION、RESTRICT 和 SET NULL； * Oracle 模式下，OceanBase 可指定 CASCADE、NO ACTION 和 SET NULL。 **注意** OceanBase 暂不支持 **SET NULL** 动作。 相关语法，请参考 [OceanBase](https://www.oceanbase.com/docs/oceanbase-database/oceanbase-database/V3.2.1/create-table) 或 MySQL/Oracle 官网文档。 |
  | 更新 | 指定当关联表（父表）中的数据被更新时，当前表（子表）对应的动作。可指定 **CASCADE** 、 **NO ACTION** 、 **RESTRICT** 和 **SET NULL** 等四种对应的动作。 MySQL 和 Oracle 模式下所支持的外键动作不同： * MySQL 模式下，OceanBase 可指定 CASCADE、NO ACTION、RESTRICT 和 SET NULL； * Oracle 模式下，OceanBase 可指定 NO ACTION。 **注意** OceanBase 暂不支持 **SET NULL** 动作。 相关语法，请参考 [OceanBase](https://www.oceanbase.com/docs/oceanbase-database/oceanbase-database/V3.2.1/create-table) 或 MySQL/Oracle 官网文档。 |
  | 检查条件 | 指定执行 **检查约束** 时校验数据的检查规则。 |

  设置约束页面同时提供三个功能键：

  | 功能项 | 说明 |
  | --- | --- |
  | +新建 | 添加一下新约束。 |
  | 编辑 | 对选定的约束进行编辑或直接双击单元格进行编辑。 |
  | 删除 | 删除当前选中的约束。 |

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
