# 改变表空间
ALTER TABLESPACE — 更改表空间的定义
# 概要
ALTER TABLESPACE name RENAME TO new_name
ALTER TABLESPACE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER TABLESPACE name SET ( tablespace_option = value [, ... ] )
ALTER TABLESPACE name RESET ( tablespace_option [, ... ] )
# 描述
改变表空间
可用于更改表空间的定义。
您必须拥有该表空间才能更改表空间的定义。要更改所有者,您还必须是新所有者角色的直接或间接成员。(请注意,超级用户自动拥有这些权限。)
# 参数
姓名
现有表空间的名称。
新名字
表空间的新名称。新名称不能以pg_
,因为这样的名称是为系统表空间保留的。
新主人
表空间的新所有者。
表空间选项
要设置或重置的表空间参数。目前,唯一可用的参数是seq_page_cost
,random_page_cost
,effective_io_concurrency
和维护_io_并发
.为特定表空间设置这些值将覆盖规划器通常估计的从该表空间中的表读取页面的成本,以及执行器的预取行为,由同名的配置参数建立(参见序列_页_成本,随机的_页_成本,有效的_io_并发,维护_io_并发)。如果一个表空间位于比 I/O 子系统的其余部分更快或更慢的磁盘上,这可能很有用。
# 例子
重命名表空间索引空间
到快速突袭
:
ALTER TABLESPACE index_space RENAME TO fast_raid;
更改表空间的所有者索引空间
:
ALTER TABLESPACE index_space OWNER TO mary;
# 兼容性
没有改变表空间
SQL 标准中的语句。