PostgreSql 数据库对象操作——DATABASE

201 阅读2分钟

这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战

更改数据库设置

只有数据库拥有者或者超级用户可以更改这些设置。

ALTER DATABASE name ALLOW_CONNECTIONS allowconn; 
ALTER DATABASE name CONNECTION LIMIT connlimit; 
ALTER DATABASE name CONNECTION IS_TEMPLATE istemplate;

name:数据库名。
allowconn:取值 true 或 false,控制数据库是否可连接。
connlimit:控制连入这个数据库的连接数,-1 表示没限制。
istemplate:取值 true 或 false,控制是否可作为模板数据库被除超级用户和这个数据库拥有者之外具有 CREATEDB 权限的用户克隆。

更改数据库名称

只有数据库拥有者或者超级用户可以重命名一个数据库,非超级用户拥有者还必须拥有 CREATEDB 权限,当前数据库不能被重命名。

ALTER DATABASE name RENAME TO new_name;

name:当前数据库名。
new_name:要更改成的数据库名。

更改数据库拥有者

要修改拥有者,你必须拥有该数据库并且也是新拥有角色的一个直接或间接成员,并且你必须具有CREATEDB 权限。

ALTER DATABASE name OWNER TO new_owner;

name:数据库名。
new_owner:要更改成的数据库拥有者。

更改数据库默认表空间

只有数据库拥有者或超级用户能够这样做,你还必须对新表空间具有创建权限。这个命令会在物理上移动位于该数据库旧的默认表空间中的任何表或索引到新的表空间中。新的默认表空间对于这个数据库必须是空的,并且不能有人可以连接到该数据库。在非默认表空间中的表和索引不受影响。

ALTER DATABASE name SET TABLESPACE new_tablespace;

name:数据库名。
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;

name:数据库名。
SET configuration_parameter {TO|=} {value|DEFAULT}:设置参数值,应用于之后新的会话。
RESET configuration_parameter:重置当前会话设置的参数值。
RESET ALL:重置当前会话设置的所有参数值。
SET configuration_parameter FROM CURRENT:将当前会话的参数值设置为数据库整体的参数值。