首批通过分布式安全可靠测评,为关键业务系统打造
创建索引失败,错误代码 5703
更新时间:2026-05-22 08:56
本文介绍创建索引失败报 5703 错误的原因以及解决方法。
适用版本
OceanBase 数据库 V2.2.7x 及以前的版本
问题现象
创建索引失败,错误信息如下。
obclient> CREATE INDEX ind ON $table(id);
ERROR 5703(HY000):Add index failed
可能原因
引起该问题的原因有两个,一种情况是由于 RootService 切主;另一种情况是创建的索引为表达式索引,并且索引中包含了新添加的列。
解决方式
对于切主引起的索引创建失败,请参见 OceanBase 数据库切主强制停止正在进行的事务的原因及规避方法。
对于在新添加列上创建表达式索引引起的索引创建失败的问题,按以下步骤解决。
对要创建索引的表执行一轮全量合并。
其中,
progressive_merge_num属性的取值含义如下:0 :表示执行渐进合并,且渐进合并的次数为 100。
1:表示强制执行全量合并,不执行渐进合并。
大于 1 :表示发生 Schema 变更时按照指定轮次做渐进合并。
obclient> ALTER TABLE xxx SET progressive_merge_num = 1; obclient> ALTER SYSTEM MAJOR FREEZE;将表的
progressive_merge_num重置为默认值,然后重新创建索引。obclient> ALTER TABLE xxx SET progressive_merge_num = 0; obclient> CREATE INDEX ind ON $table(id);