ALTER DATABASE

Name

ALTER DATABASE -- 修改一个数据库

Synopsis

ALTER DATABASE name [ [ WITH ] option [ ... ] ]

这里的option可以是:

    CONNECTION LIMIT connlimit

ALTER DATABASE name RENAME TO new_name

ALTER DATABASE name OWNER TO new_owner

ALTER DATABASE name SET TABLESPACE new_tablespace

ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }
ALTER DATABASE name SET configuration_parameter FROM CURRENT
ALTER DATABASE name RESET configuration_parameter
ALTER DATABASE name RESET ALL

描述

ALTER DATABASE改变一个数据库的属性。

第一种形式改变某个针对每个数据库的设置(详细情况见下文)。只有数据库所有 者或者超级用户可以改变这些设置。

第二种形式修改数据库的名称。只有数据库所有者或者超级用户可以重命名一个数据库; 非超级用户必须也有CREATEDB权限。当前数据库不能被重命名。 (如果你需要这么做,那么请连接另外一个数据库。)

第三种形式修改数据库的所有者。要改变所有者,你必须拥有该数据库并且还是新的 所属角色的直接或者间接成员,并且你必须有CREATEDB权限。 (请注意超级用户自动拥有所有这些权限。)

第四种形式修改数据库的缺省表空间。只有数据库所有者或者超级用户可以做这些; 你必须也有对新表空间的创建权限。这个命令可在物理上将数据库的旧缺省空间中的 任何表或者索引移动到新的表空间中。请注意在非缺省表空间中的表和索引是不受影响的。

保留的形式为PostgreSQL数据库修改缺省的会话运 行时配置变量。随后在该数据库上启动新会话的时候将使用此缺省值。数据库相 关的缺省值将覆盖任何在postgresql.conf里出现或者从 postgres命令行接收到的设置。只有数据库所有者或者超级 用户可以为数据库修改会话缺省值。有些变量不能用这种方法设置,或者是只能由 超级用户设置。

参数

name

需要修改属性的数据库的名字。

connlimit

对这个数据库可以做多少个并发连接。-1表示没有限制。

new_name

数据库的新名称。

new_owner

数据库的新所有者。

new_tablespace

数据库的新缺省表空间。

configuration_parameter
value

把指定的数据库配置变量的会话缺省值设置为给出的数值。如果 valueDEFAULT或等效的 RESET,那么与数据库相关的变量设置将被删除,因此在 新的会话中将继承系统范围的缺省设置。用RESET ALL清 除所有设置。SET FROM CURRENT将会话参数的当前值保存为相关 的数据库值。

参见SET和章17SET获取有关允 许的变量名称和数值的更多信息。

注意

也可以把一个会话缺省绑定到一个特定用户,而不是某个数据库上;参阅 ALTER ROLE。如果存在冲突,那么用户声明的设置覆盖数 据库相关的设置。

例子

要关闭在数据库test上缺省的索引扫描: test:

ALTER DATABASE test SET enable_indexscan TO off;

兼容性

ALTER DATABASE语句是一个 PostgreSQL扩展.

又见

CREATE DATABASE, DROP DATABASE, SET, CREATE TABLESPACE