---
title: 创建索引失败，错误代码 5703-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于创建索引失败，错误代码 5703相关的常见问题和使用技巧，帮助您快速解决创建索引失败，错误代码 5703的难题。
---
切换语言

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

划线反馈

# 创建索引失败，错误代码 5703

更新时间：2026-05-22 08:56

适用版本： V2.2.x 内容类型：Troubleshoot  

本文介绍创建索引失败报 5703 错误的原因以及解决方法。

## 适用版本

OceanBase 数据库 V2.2.7x 及以前的版本

## 问题现象

创建索引失败，错误信息如下。

```unknow
obclient> CREATE INDEX ind ON $table(id);
ERROR 5703(HY000):Add index failed

```

## 可能原因

引起该问题的原因有两个，一种情况是由于 RootService 切主；另一种情况是创建的索引为表达式索引，并且索引中包含了新添加的列。

## 解决方式

- 对于切主引起的索引创建失败，请参见 [OceanBase 数据库切主强制停止正在进行的事务的原因及规避方法](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000010178)。
 - 对于在新添加列上创建表达式索引引起的索引创建失败的问题，按以下步骤解决。

     1. 对要创建索引的表执行一轮全量合并。

       其中，`progressive_merge_num` 属性的取值含义如下：

            - 0 ：表示执行渐进合并，且渐进合并的次数为 100。
            - 1：表示强制执行全量合并，不执行渐进合并。
            - 大于 1 ：表示发生 Schema 变更时按照指定轮次做渐进合并。

       ```unknow
       obclient> ALTER TABLE xxx SET progressive_merge_num = 1;

       obclient> ALTER SYSTEM MAJOR FREEZE;

       ```
     2. 将表的 `progressive_merge_num` 重置为默认值，然后重新创建索引。

       ```unknow
       obclient> ALTER TABLE xxx SET progressive_merge_num = 0;

       obclient> CREATE INDEX ind ON $table(id);

       ```

上一篇

[索引创建失败，错误码 5827](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000182)

下一篇

[创建索引失败，错误代码 5703](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000450146) ![有帮助](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) 咨询热线
