选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.1 已于 2016 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

ALTER INDEX

ALTER INDEX — change the definition of an index

大纲

ALTER INDEX name RENAME TO new_name
ALTER INDEX name SET TABLESPACE tablespace_name
ALTER INDEX name SET ( storage_parameter = value [, ... ] )
ALTER INDEX name RESET ( storage_parameter [, ... ] )

描述

ALTER INDEX更改现有索引的定义。有几种子形式:

RENAME

RENAME形式更改索引的名称。存储的数据不受影响。

SET TABLESPACE

这种形式把索引的表空间更改为指定的表空间,并把与该索引关联的数据文件移动到新表空间。另见 CREATE TABLESPACE

SET ( storage_parameter = value [, ... ] )

该形式更改索引的一个或多个索引方法特定存储参数。有关可用参数的详情,请参见CREATE INDEX。请注意,该命令不会立即修改索引内容;根据参数的不同,可能需要使用REINDEX重建索引才能达到预期效果。

RESET ( storage_parameter [, ... ] )

这种形式将一个或多个索引方法相关的存储参数重置为默认值。与 SET一样,可能仍需要执行一次REINDEX 才能让该索引被完全更新。

参数

name

要修改的现有索引名称(可以是模式限定的)。

new_name

该索引的新名称。

tablespace_name

该索引将被移动到的表空间。

storage_parameter

一个索引方法相关的存储参数的名称。

value

一个索引方法相关的存储参数的新值。根据具体参数,它可能是数字或一个词。

注解

这些操作也可以使用ALTER TABLE完成。实际上,ALTER INDEX只是ALTER TABLE中适用于索引的那些形式的别名。

以前曾有一种ALTER INDEX OWNER变体,但现在会被忽略 (同时发出警告)。索引的拥有者不能不同于其所属表的拥有者。更改表的拥有者时, 索引的拥有者也会自动更改。

不允许更改系统目录索引的任何部分。

示例

要重命名现有索引:

ALTER INDEX distributors RENAME TO suppliers;

要将索引移到另一个表空间:

ALTER INDEX distributors SET TABLESPACE fasttablespace;

要更改索引的填充因子(假设该索引方法支持fillfactor参数):

ALTER INDEX distributors SET (fillfactor = 75);
REINDEX INDEX distributors;

兼容性

ALTER INDEX是一种 PostgreSQL扩展。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。