基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
新建表
更新时间:2023-09-05 15:16:16
概述
在 OceanBase 开发者中心(OceanBase Developer Center,ODC)单击连接名进入连接后,在左侧导航栏中单击 表 标签可查看表列表。在表列表的右上角,单击 + 创建表,或在顶部导航栏中单击 新建 以创建所需的对象。

如上图所示,创建表包含以下 6 个步骤:
设置基本信息。
设置列。
设置分区规则。
设置索引。
设置约束。
点击 提交 按钮,等待表生成。
操作步骤
步骤一:设置基本信息
指定 表名称 和表的 描述 (可选)。 说明
在 MySQL 模式下,还需指定 默认字符集 和 默认排序规则 。
步骤二:设置列
如下图所示,添加一列时需指定以下信息:

| 信息项 | 说明 |
|---|---|
| 字段名称 | 指定字段(列)的名称。 |
| 数据类型 | 指定字段(列)的数据类型。 |
| 非空 | 是否限制该字段(列)的值不能为空。 |
| 自增(MySQL 模式下) | 选择是否为自增列。 |
| 缺省值 | 该字段(列)的默认值。 |
| 字段注释 | 对该字段的说明。 |
设置列页面同时提供三个功能键:
| 功能项 | 说明 |
|---|---|
| +新建 | 添加一下新字段。 |
| 编辑 | 对选定的字段进行编辑或直接双击单元格进行编辑。 |
| 删除 | 删除当前选中的字段。 |
步骤三:设置分区规则

OceanBase 中 MySQL 模式支持六种分区方法: key 、 Hash 、 Range 、 Range_colums 、 List 和 List_columns 。
Oracle 模式支持三种分区方法: List 、 Range 和 Hash 。
由于在 MySQL 模式和 Oracle 模式下分区的定义不同,所以以下信息在不同模式下的意义略有不同,请根据所选的分区方法按其定义指定以下信息:
信息项 说明 分区方法 指定分区方法。 MySQL 模式和 Oracle 模式下支持的分区方法不同。 字段 选择的字段将成为分区键。 表达式 根据表达式的返回值进行分区(Oracle 模式不支持分区表达式)。 分区 根据所选的 分区方法 ,可能需要指定 分区名称 、 分区数量 、 区间上限值 或 值枚举 等信息。 可添加多个分区,并拖动它们进行排序。
步骤四:设置索引
如下图所示,需指定以下信息:

| 信息项 | 说明 |
|---|---|
| 索引名 | 为改索引指定的名字。 |
| 索引范围 | 默认值是 GLOBAL (全局索引),只有在设置分区的表后方可指定索引范围是否为 LOCAL (局部索引)。 |
| 索引类型 | 索引类型目前只支持 BTree。 |
| 可选字段 | 选择建索引所在的列,需注意索引列的顺序。 |
| 唯一 | 是否唯一索引,即通过索引的方式保证唯一性约束。 |
设置索引页面同时提供三个功能键:
| 功能项 | 说明 |
|---|---|
| +新建 | 添加一下新索引。 |
| 编辑 | 对选定的索引进行编辑或直接双击单元格进行编辑。 |
| 删除 | 删除当前选中的索引。 |
步骤五:设置约束

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 或 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 或 MySQL/Oracle 官网文档。 检查条件 指定执行 检查约束 时校验数据的检查规则。 设置约束页面同时提供三个功能键:
功能项 说明 +新建 添加一下新约束。 编辑 对选定的约束进行编辑或直接双击单元格进行编辑。 删除 删除当前选中的约束。