功能描述
修改一个索引的参数。
语法格式
ALTER INDEX [ IF EXISTS ] name RENAME TO new_name
ALTER INDEX [ IF EXISTS ] name SET TABLESPACE tablespace_name
ALTER INDEX name DEPENDS ON EXTENSION extension_name
ALTER INDEX [ IF EXISTS ] name SET ( storage_parameter = value [, ... ] )
ALTER INDEX [ IF EXISTS ] name RESET ( storage_parameter [, ... ] )
ALTER INDEX ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]
SET TABLESPACE new_tablespace [ NOWAIT ]
参数说明
- IF EXISTS:如果索引不存在不报错仅提示;
- name:要修改的索引名,可以被模式修饰;
- new_name:新的索引名;
- tablespace_name:表空间的名字;
- extension_name:索引依赖的扩展名;
- storage_parameter:指定索引方法的存储参数;
- value:索引方法特定的存储参数的新值,根据参数的不同,这可能是一个数字或单词。
注意事项
ALTER INDEX的几种形式:
- RENAME
只改变索引的名字。对存储的数据没有影响。
- SET TABLESPACE
这个选项会改变索引的表空间为指定表空间,并且把索引相关的数据文件移动到新的表空间里。
- DEPENDS ON EXTENSION
将索引标记为依赖于扩展,如果扩展被删除,索引也将自动删除。
- SET ( storage_parameter = value [, ... ] )
改变索引的一个或多个索引方法特定的存储参数。 需要注意的是索引内容不会被这个命令立即修改,根据参数的不同,可能需要使用REINDEX重建索引来获得期望的效果。
- RESET ( storage_parameter [, ... ] )
重置索引的一个或多个索引方法特定的存储参数为缺省值。与SET一样,可能需要使用REINDEX来完全更新索引。
范例
ALTER INDEX customer_idx RENAME TO gcustomer_idx;
ALTER INDEX
语法兼容
ALTER INDEX是一种 PostgreSQL扩展。
相关语法
CREATE INDEX, DROP INDEX, REINDEX
功能描述
修改过程语言的参数。
语法格式
ALTER [ PROCEDURAL ] LANGUAGE name RENAME TO new_name
ALTER [ PROCEDURAL ] LANGUAGE name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
参数说明
- name:语言的名称;
- new_name:该语言的新名称;
- new_owner:该语言的新所有者。
语法兼容
在 SQL 标准中没有ALTER LANGUAGE语句。
相关语法
CREATE LANGUAGE, DROP LANGUAGE
功能描述
修改物化视图的参数。
语法格式
ALTER MATERIALIZED VIEW [ IF EXISTS ] name
action [, ... ]
ALTER MATERIALIZED VIEW name
DEPENDS ON EXTENSION extension_name
ALTER MATERIALIZED VIEW [ IF EXISTS ] name
RENAME [ COLUMN ] column_name TO new_column_name