---
title: OceanBase 数据库中如何访问隐藏自增列的值-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于OceanBase 数据库中如何访问隐藏自增列的值相关的常见问题和使用技巧，帮助您快速解决OceanBase 数据库中如何访问隐藏自增列的值的难题。
---
切换语言

- 简体中文
- English

划线反馈

# OceanBase 数据库中如何访问隐藏自增列的值

更新时间：2026-05-21 01:56

适用版本： V2.1.x、V2.2.x、V3.1.x、V3.2.x 内容类型：How-to  

OceanBase 数据库无主键表会自动使用一个自增列+分区键作为隐藏主键。使用 desc、show create table 等方式是访问不到这个内部隐藏主键的。本文介绍如何访问这个隐藏主键。

## 适用版本

OceanBase 数据库 V2.x、V3.x 版本。

## 操作方法

需要创建一个内部用户 `__oceanbase_inner_drc_user`，然后用这个内部用户去查询内部主键（`__pk_increment`）。

MySQL 租户下无主键表 t3，普通用户无法访问到内部主键的场景。

1. 创建测试表。

   ```shell
   obclient [db_mysql]> create table t3(r1 int);
   Query OK, 0 rows affected (0.347 sec)

   ```
 2. 插入数据，执行如下语句。

   ```shell
   obclient [db_mysql]> insert into t3 values (1),(10000),(300);
   Query OK, 3 rows affected (0.130 sec)
   Records: 3  Duplicates: 0  Warnings: 0

   ```
 3. 查询表 t3。

   ```shell
   obclient [db_mysql]> select * from t3;

   ```

   输出结果如下。

   ```shell
   +-------+
   | r1    |
   +-------+
   |     1 |
   | 10000 |
   |   300 |
   +-------+
   3 rows in set (0.036 sec)

   ```
 4. 查询表增量主键。

   ```shell
   obclient [db_mysql]> select __pk_increment from t3;
   ERROR 1054 (42S22): Unknown column '__pk_increment' in 'field list'

   ```

MySQL 租户下创建用户内部用户 `__oceanbase_inner_drc_user`，并使用他来查询内部主键的场景。

1. 创建用户内部用户 `__oceanbase_inner_drc`。

   ```shell
   obclient [db_mysql]> create user __oceanbase_inner_drc_user identified by 'root';
   Query OK, 0 rows affected (0.073 sec)

   ```
 2. 授权用户内部用户权限。

   ```shell
   obclient [db_mysql]> grant select on *.* to __oceanbase_inner_drc_user;
   Query OK, 0 rows affected (0.063 sec)

   ```
 3. 退出 OBClient 客户端窗口。

   ```shell
   obclient [db_mysql]> \q
   Bye

   ```
 4. 登录 OceanBase 集群。

   ```shell
   [root@ob-192-168-2-51 obytt111]# obclient -u__oceanbase_inner_drc_user@mysql#obcluster -h 127.1 -P 2883 -cA -p'root'
   Welcome to the OceanBase.  Commands end with ; or \g.
   Your OceanBase connection id is 7
   Server version: OceanBase 3.2.3.0 (r20220429172811-141f0018b07e9f8d269bb5f6dbd020cd419eb3fc) (Built Apr 29 2022 17:39:23)

   ```
 5. 使用数据库。

   ```shell
    obclient [(none)]> use db_mysql
    Database changed

   ```
 6. 查询表增量主键。

   ```shell
   obclient [db_mysql]> select __pk_increment from t3;

   ```

   输出结果如下：

   ```shell
    +----------------+
    |__pk_increment |
    +----------------+
    |              1 |
    |              2 |
    |              3 |
    +----------------+
    3 rows in set (0.024 sec)

   ```

Previous

[Oracle 模式修改列长报错 ORA-01441](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207743)

Next

[OceanBase 数据库自增列特性介绍](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000170) ![有帮助](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) 咨询热线
