首批通过分布式安全可靠测评,为关键业务系统打造
创建随机分布表
更新时间:2026-07-29 16:32:27
OceanBase 数据库可以通过指定 PARTITION BY RANDOM 显示创建随机分布表。
使用限制及注意事项
- 主键要求:无主键。
- 分区层级:仅支持一级分区,不支持子分区。
- 表类型:仅支持用户表,不支持临时表、系统表。
- 不支持 临时表、
CTAS(CREATE TABLE AS SELECT)。 - 不支持
LOCAL唯一索引,唯一索引必须为GLOBAL类型。 - 不支持加入表组(
TABLEGROUP)。 - 不支持从非随机分布表
ALTER为随机分布表。 - 不支持对随机分布表做分区操作(
DROP/SPLIT/EXCHANGE/TRUNCATE PARTITION)。
权限要求
创建创建随机分布表需要有 CREATE 权限。更多有关 OceanBase 数据库权限的详细介绍,参见 Oracle 模式下的权限分类。
显示创建随机分布表
语法
创建随机分布表的 SQL 语句格式如下:
CREATE TABLE [IF NOT EXISTS] table_name (table_definition_list)
PARTITION BY RANDOM [SIZE('size_value')];
参数说明
| 参数 | 描述 |
|---|---|
| table_name | 表名称。 |
| SIZE('size_value') | 可选项,用于指定每个分区的数据容量阈值,超出后触发自动新增分区。取值范围 [1MB, +∞),支持 MB、GB 等单位。如果不指定 SIZE('size_value') 参数,则该选项取值与配置项 auto_split_tablet_size 的值相同。 |
更多有关创建表语法的详细参数说明信息,参见 CREATE TABLE。
示例
使用默认分区大小创建随机分布表
tbl1。obclient> CREATE TABLE tbl1( col1 INT, col2 VARCHAR2(1024) ) PARTITION BY RANDOM;创建随机分布表
tbl2,并指定分区大小为 4GB。obclient> CREATE TABLE tbl2( col1 INT, col2 VARCHAR2(1024) ) PARTITION BY RANDOM SIZE('4GB');