ALTER INDEX
ALTER INDEX#
ALTER INDEX
ALTER INDEX — 更改一个索引的定义
大纲
ALTER INDEX [ IF EXISTS ] name RENAME TO new_name
ALTER INDEX name DEPENDS ON EXTENSION extension_name
描述
ALTER INDEX更改一个现有索引的定义。下面描述了几种子窗体。
注意每个子窗体所需的锁级别可能不同。除非显式说明,ACCESS EXCLUSIVE锁被持有。
列出多个子命令时,锁的持有将是任何子命令所需的最严格的子命令。
- RENAME
- RENAME形式更改该索引的名称。如果索引与一个表约束(- UNIQUE、- PRIMARY KEY或者- EXCLUDE)关联,该约束也会被重命名。这对已存储的数据没有影响。- 重命名索引取得一个 - SHARE UPDATE EXCLUSIVE锁。
- DEPENDS ON EXTENSION
- 这种形式把该索引标记为依赖于扩展,这样如果该扩展被删除,该索引也将被 自动删除。 
参数
- IF EXISTS
- 如果该索引不存在不要抛出错误。这种情况下将发出一个提示。 
- ``name``
- 要更改的一个现有索引的名称(可能被模式限定)。 
- ``new_name``
- 该索引的新名称。 
- ``extension_name``
- 该索引所依赖的扩展的名称。 
注解
也可以用ALTER
TABLE来做这些操作。实际上,
ALTER INDEX只是ALTER TABLE应用在索引
上的形式的别名而已。
以前有一种ALTER INDEX OWNER变体,但现在已被忽略(会出现
一个警告)。一个索引的拥有者不能与其基表的拥有者不同。更改基表的拥有者
会自动地更改索引的拥有者。
不允许更改系统目录索引的任何部分。
示例
要重命名一个现有索引:
ALTER INDEX distributors RENAME TO suppliers;
兼容性
ALTER INDEX是一种 PostgreSQL扩展。
另见