---
title: OceanBase 数据库如何实现索引构建的原子性变更-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于OceanBase 数据库如何实现索引构建的原子性变更相关的常见问题和使用技巧，帮助您快速解决OceanBase 数据库如何实现索引构建的原子性变更的难题。
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

划线反馈

# OceanBase 数据库如何实现索引构建的原子性变更

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

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

本文介绍在 OceanBase 数据库中如何实现索引构建的原子性变更。

## 适用版本

OceanBase 数据库 V2.X 及后续版本

## 如何实现索引构建的原子性变更

OceanBase 数据库 V2.X 的索引构建是异步进行的，在用户执行创建索引的 DDL 语句后，OceanBase 数据库会先返回语句执行成功，再开始创建索引。

因此，`ALTER TABLE xx DROP INDEX ind, ADD KEY ind(xxx)` 语句并不能保证索引构建的原子性。

对于这个问题，可以通过先 `RENAME` 旧的索引，再创建新的索引，待索引创建完成后，删除旧的索引。

```unknow
obclient> ALTER TABLE xx RENAME INDEX ind1 TO ind2;
obclient> CREATE INDEX ind1 ON xx(xxx) USING BTREE;
obclient> DROP INDEX ind2 ON xx;

```

上一篇

[OceanBase 数据库中索引相关的常见问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000010173)

下一篇

[OceanBase 数据库 V2.X 版本不兼容 Oracle 的索引类型及其替代方式](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000053) ![有帮助](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) 咨询热线
