PostgreSQL 8.2.3 中文文档
后退快退快进前进

ALTER INDEX

名称

ALTER 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

只改变索引的名字。对存储的数据没有影响。

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;

改变索引的占位因数(假定该索引方法支持它):

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

兼容性

ALTER INDEX 是 PostgreSQL 扩展

又见

CREATE INDEX, REINDEX

后退首页前进
ALTER GROUP上一级ALTER LANGUAGE