
# ALTER INDEX
#### 功能描述
ALTER INDEX用于修改现有索引的定义。
它有几种子形式：
- IF EXISTS 如果指定的索引不存在，则发出一个notice而不是error。
  
- RENAME TO 只改变索引的名称。对存储的数据没有影响。
  
- SET TABLESPACE 这个选项会改变索引的表空间为指定表空间，并且把索引相关的数据文件移动到新的表空间里。
  
- SET ( { STORAGE_PARAMETER = value } \[, ...\] ) 改变索引的一个或多个索引方法特定的存储参数。 需要注意的是索引内容不会被这个命令立即修改，根据参数的不同，可能需要使用REINDEX重建索引来获得期望的效果。
  
- RESET ( { storage_parameter } \[, ...\] ) 重置索引的一个或多个索引方法特定的存储参数为缺省值。与SET一样，可能需要使用REINDEX来完全更新索引。
  
- \[ MODIFY PARTITION index_partition_name \] UNUSABLE 用于设置表或者索引分区上的索引不可用。
  
- REBUILD \[ PARTITION index_partition_name \] 用于重建表或者索引分区上的索引。
  
- RENAME PARTITION 用于重命名索引分区。
  
- MOVE PARTITION 用于修改索引分区的所属表空间。
  
 
#### 注意事项
只有索引的所有者或者拥有索引所在表的INDEX权限的用户有权限执行此命令，系统管理员默认拥有此权限。
#### 语法格式
- 重命名表索引的名称。
  ```
  ALTER INDEX [ IF EXISTS ] index_name 
      RENAME TO new_name;
  ```
  

- 修改表索引的所属空间。
  ```
  ALTER INDEX [ IF EXISTS ] index_name 
      SET TABLESPACE tablespace_name;
  ```
  

- 修改表索引的存储参数。
  ```
  ALTER INDEX [ IF EXISTS ] index_name 
      SET ( {storage_parameter = value} [, ... ] );
  ```
  

- 重置表索引的存储参数。
  ```
  ALTER INDEX [ IF EXISTS ] index_name 
      RESET ( storage_parameter [, ... ] ) ;
  ```
  

- 设置表索引或索引分区不可用。
  ```
  ALTER INDEX [ IF EXISTS ] index_name 
      [ MODIFY PARTITION index_partition_name ] UNUSABLE;
  ```
  

- 重建表索引或索引分区。
  ```
  ALTER INDEX index_name 
      REBUILD [ PARTITION index_partition_name ];
  ```
  

- 重命名索引分区。
  ```
  ALTER INDEX [ IF EXISTS ] index_name 
      RENAME PARTITION index_partition_name TO new_index_partition_name;
  ```
  

- 修改索引分区的所属表空间。
  ```
  ALTER INDEX [ IF EXISTS ] index_name 
      MOVE PARTITION index_partition_name TABLESPACE new_tablespace;
  ```
  
 
#### 参数说明
- **index_name**
  要修改的索引名。
  
- **new_name**
  新的索引名。
  取值范围：字符串，且符合[标识符命名规范](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0266.html#ZH-CN_TOPIC_0000002221496149__zh-cn_topic_0000002220894609_section1257443811315)。
  
- **tablespace_name**
  表空间的名称。
  取值范围：已存在的表空间。
  
- **storage_parameter**
  索引方法特定的参数名。
  
- **value**
  索引方法特定的存储参数的新值。根据参数的不同，这可能是一个数字或单词。
  
- **new_index_partition_name**
  新索引分区名。
  
- **index_partition_name**
  索引分区名。
  
- **new_tablespace**
  新表空间。
  
 
#### 示例
请参见CREATE INDEX的[示例](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0408.html#ZH-CN_TOPIC_0000002186016162__zh-cn_topic_0000002185613958_zh-cn_topic_0283136578_zh-cn_topic_0237122106_zh-cn_topic_0059777455_s985289833081489e9d77c485755bd362)。
#### 相关链接
[CREATE INDEX](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0408.html#ZH-CN_TOPIC_0000002186016162)，[DROP INDEX](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0448.html#ZH-CN_TOPIC_0000002186016210)，[REINDEX](https://support.huaweicloud.com/centralized-devg-v2-gaussdb/gaussdb_42_0487.html#ZH-CN_TOPIC_0000002221381941)
