ALTER INDEX

Name

ALTER INDEX -- 改变一个索引的定义

Synopsis

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

The RENAME form changes the name of the index. There is no effect on the stored data.

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

SET TABLESPACE

This form changes the index's tablespace to the specified tablespace and moves the data file(s) associated with the index to the new tablespace. See also CREATE TABLESPACE.

改变索引的表空间为指定表空间,并且把索引相关的数据文件移动到新的表空间里。又见CREATE TABLESPACE

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

This form changes one or more index-method-specific storage parameters for the index. See CREATE INDEX for details on the available parameters. Note that the index contents will not be modified immediately by this command; depending on the parameter you might need to rebuild the index with REINDEX to get the desired effects.

改变索引的一个或多个索引方法特定的存储参数。参见CREATE INDEX获取可用参数的细节。 需要注意的是索引内容不会被这个命令立即修改,根据参数的不同, 你可能需要使用REINDEX重建索引来获得期望的效果。

RESET ( storage_parameter [, ... ] )

重置索引的一个或多个索引方法特定的存储参数为缺省值。 与 SET一样,可能需要使用REINDEX来完全更新索引。

Parameters参数

name

The name (possibly schema-qualified) of an existing index to alter.

要修改的索引的名字(可以有模式修饰)。

new_name

The new name for the index.

索引的新名字

tablespace_name

索引将移动到的表空间的名字。

storage_parameter

索引方法特定的存储参数的名字。

value

The new value for an index-method-specific storage parameter. This might be a number or a word depending on the parameter.

引方法特定的存储参数的新值。根据参数的不同,这可能是一个数字或单词。

注意

这些操作也可以用ALTER TABLE进行。 ALTER INDEX实际上只是ALTER TABLE 用于索引的形式的一个别名。

There was formerly an ALTER INDEX OWNER variant, but this is now ignored (with a warning). An index cannot have an owner different from its table's owner. Changing the table's owner automatically changes the index as well.

以前还有一个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 INDEXPostgreSQL扩展。

又见

CREATE INDEX, REINDEX