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服务启动时在命令行上指定的参数值。 只有数据库所有者或者超级用户可以为一个数据库修改会话缺省值。 有些变量不能用这种方法设置,或者是只能由超级用户设置。
需要修改属性的数据库的名字。
对这个数据库可以做多少个并发连接。-1 意味着没有限制。
数据库的新名字。
数据库新的所有者。
数据库的新的缺省表空间。
把数据库的指定配置参数的会话缺省值设置为给定的数值。 如果 value 是 DEFAULT , 或者是相应的如RESET选项使用的话,那么与数据库相关的参数设置将被删除,在新的会话中将继承系统级的缺省参数值。 用RESET ALL 可清除所有数据库相关的设置。 用SET FROM CURRENT可保存会话参数的当前值保存为相关的数据库值。
参阅 SET 和 Chapter 18 获取有关允许的参数名和数值的更多信息。