---
title: "创建空间索引 - OceanBase 数据库 V4.3.0 | OceanBase 文档中心"
description: "创建空间索引 OceanBase 数据库支持创建常规索引的语法创建空间索引，但使用 SPATIAL 关键字。空间索引中的列必须声明为 NOT NULL 。 以下示例展示如何创建空间索引： 使用 CREATE TABLE : CREATE TABLE geom (g GEOMETRY NOT NULL SRID 432…"
---
切换语言

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

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

# 创建空间索引

更新时间：2026-04-10 11:58:35

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/200.common-tenant-of-mysql-mode/100.basic-elements-of-mysql-mode/100.data-type-of-mysql-mode/900.spatial-data-type-of-mysql-mode/400.create-spatial-indexes-of-mysql-mode.md)  

OceanBase 数据库支持创建常规索引的语法创建空间索引，但使用 `SPATIAL` 关键字。空间索引中的列必须声明为 `NOT NULL`。

以下示例展示如何创建空间索引：

- 使用 `CREATE TABLE`:

```sql
CREATE TABLE geom (g GEOMETRY NOT NULL SRID 4326, SPATIAL INDEX(g));

```

- 使用 `ALTER TABLE`：

```sql
CREATE TABLE geom (g GEOMETRY NOT NULL SRID 4326);
ALTER TABLE geom ADD SPATIAL INDEX(g);

```

- 使用 `CREATE INDEX`：

```sql
CREATE TABLE geom (g GEOMETRY NOT NULL SRID 4326);
CREATE SPATIAL INDEX g ON geom (g);

```

以下示例展示如何删除空间索引：

```sql
ALTER TABLE geom DROP INDEX g;

```

- 使用 `DROP INDEX`：

```sql
DROP INDEX g ON geom;

```

创建空间索引的相关约束如下：

- 创建空间索引的列定义中必须包含 `NOT NULL` 约束。
 - 在创建了索引之后，比较的时候使用列定义中的 SRID 所对应的坐标系。空间索引存储了几何对象的 MBR（Minimum Bounding Rectangle）构建，MBR 的比较方式也依赖于 SRID。
 - 创建了空间索引的列最好是已经定义了 SRID，否则在该列上建的空间索引在查询时无法生效。

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