---
title: "创建随机分布表 - OceanBase 数据库 V5.0.1 | OceanBase 文档中心"
description: 创建随机分布表 OceanBase 数据库可以通过指定 PARTITION BY RANDOM 创建随机分布表。 使用限制及注意事项 主键要求：无主键，或单列 BIGINT AUTO_INCREMENT 自增主键并且自增主键必须使用 NOORDER 模式。 分区层级：仅支持一级分区，不支持子分区。 表类型：仅支持用户…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 5.0.1

# 创建随机分布表

更新时间：2026-07-29 10:39:51

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V5.0.1/zh-CN/700.reference/300.database-object-management/100.manage-object-of-mysql-mode/300.manage-partitions-of-mysql-mode/270.random-partition-table-of-mysql-mode/200.create-a-random-partition-table-of-mysql-mode.md)  

OceanBase 数据库可以通过指定 `PARTITION BY RANDOM` 创建随机分布表。

## 使用限制及注意事项

- 主键要求：无主键，或单列 `BIGINT AUTO_INCREMENT` 自增主键并且自增主键必须使用 `NOORDER` 模式。
 - 分区层级：仅支持一级分区，不支持子分区。
 - 表类型：仅支持用户表，不支持临时表、系统表。
 - 不支持 临时表、`CTAS`（`CREATE TABLE AS SELECT`）。
 - 不支持 `LOCAL` 唯一索引，唯一索引必须为 `GLOBAL` 类型。
 - 不支持加入表组（`TABLEGROUP`）。
 - 不支持从非随机分布表 `ALTER` 为随机分布表。
 - 不支持对随机分布表做分区操作（`DROP/SPLIT/EXCHANGE/TRUNCATE PARTITION`）。

### 自增列附加限制

- 不兼容 MySQL 原生自增行为，仅支持 `NOORDER` 模式。
 - 不保证递增，只保证表级唯一。
 - 不支持 `LAST_INSERT_ID()`/`mysql_insert_id()`。
 - 不受 `auto_increment_increment`、`auto_increment_offset` 系统变量影响。
 - 支持 `NO_AUTO_VALUE_ON_ZERO`。
 - 支持指定值写入（保证后续分配不冲突）。

## 权限要求

创建创建随机分布表需要有 `CREATE` 权限。更多有关 OceanBase 数据库权限的详细介绍，参见 [MySQL 模式下的权限分类](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000006619040)。

## 显示创建随机分布表

### 语法

创建随机分布表的 SQL 语句格式如下：

```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](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000006618619) 的值相同。 |

更多有关创建表语法的详细参数说明信息，参见 [CREATE TABLE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000006619367)。

### 示例

- 使用默认分区大小创建随机分布表 `tbl1`。

  ```shell
  obclient> CREATE TABLE tbl1(
      col1 INT,
      col2 DATETIME,
      col3 VARCHAR(1024)
      )
      PARTITION BY RANDOM;

  ```
 - 创建随机分布表 `tbl2`，并指定分区大小为 4GB。

  ```shell
  obclient> CREATE TABLE tbl2(
      col1 INT,
      col2 DATETIME,
      col3 VARCHAR(1024)
      )
      PARTITION BY RANDOM SIZE('4GB');

  ```
 - 创建带自增主键的随机分布表 `tbl3`，并指定分区大小为 32GB。

  ```shell
  obclient> CREATE TABLE tbl3(
      col1 BIGINT AUTO_INCREMENT PRIMARY KEY,
      col2 DECIMAL(10,2),
      col3 VARCHAR(256)
      )
      AUTO_INCREMENT_MODE = 'NOORDER'
      PARTITION BY RANDOM SIZE('32GB');

  ```

## 相关文档

- [随机分布表概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000006619147)
 - [修改随机分布表](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000006619146)

 上一篇 下一篇 ![有帮助](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) 咨询热线
