
# DROP INDEX
#### 功能描述
删除索引。
#### 注意事项
- 索引的所有者、索引所在模式的所有者、拥有索引所在表的INDEX权限的用户或者被授予了DROP ANY INDEX权限的用户有权限执行DROP INDEX命令，三权分立关闭时的系统管理员默认拥有此权限。
- 对于全局临时表，当某个会话已经初始化了全局临时表对象（包括创建全局临时表和第一次向全局临时表内插入数据）时，其他会话无法执行该表上索引的删除操作。
 
#### 语法格式
```
DROP INDEX  [ IF EXISTS ] 
    index_name [, ...] [ CASCADE | RESTRICT];
DROP INDEX index_name [, ...] [CASCADE | RESTRICT] ON table_name [algorithm_option | lock_option];
```
#### 参数说明
- **IF EXISTS**
  如果指定的索引不存在，则发出一个notice而不是抛出一个ERROR。
  
- **index_name**
  要删除的索引名。
  取值范围：已存在的索引。
  
- **CASCADE \| RESTRICT**
  - CASCADE：表示允许级联删除依赖于该索引的对象。
  
  - RESTRICT：表示有依赖于此索引的对象存在，则该索引无法被删除。此选项为缺省值。
   
 
- **table_name**
  表名。
  
- **algorithm_option**
  参考[CREATE INDEX](https://support.huaweicloud.com/distributed-m-comp-devg-v8-gaussdb/gaussdb-81-0073.html#ZH-CN_TOPIC_0000002558925201)。
  
- **lock_option**
  参考[CREATE INDEX](https://support.huaweicloud.com/distributed-m-comp-devg-v8-gaussdb/gaussdb-81-0073.html#ZH-CN_TOPIC_0000002558925201)。
  
#### 示例
```
-- 建表
m_db=# CREATE TABLE test1_index (id INT, name VARCHAR(20));
m_db=# CREATE INDEX idx_test1 on test1_index (id);
-- 删除索引
m_db=# DROP INDEX IF EXISTS idx_test1 CASCADE;
-- 删除表
m_db=# DROP TABLE test1_index;
```
#### 相关链接
[ALTER INDEX](https://support.huaweicloud.com/distributed-m-comp-devg-v8-gaussdb/gaussdb-81-0051.html#ZH-CN_TOPIC_0000002527805454)，[CREATE INDEX](https://support.huaweicloud.com/distributed-m-comp-devg-v8-gaussdb/gaussdb-81-0073.html#ZH-CN_TOPIC_0000002558925201)
