ALTER DATABASE

修改数据库的属性

概要

ALTER DATABASE name [ WITH CONNECTION LIMIT connlimit ]

ALTER DATABASE name RENAME TO newname

ALTER DATABASE name OWNER TO new_owner

ALTER DATABASE name SET TABLESPACE new_tablespace

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

描述

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

第一个语句修改数据库的连接数。只有数据的所有者或者超级用户可以更改此设置。

第二个语句修改数据库的名字。只有数据库的所有者或者超级用户可以重命名数据库;非超级用户必须拥有 CREATEDB 权限。不能修改当前数据库的名字,连接到其他的数据库先。

第三个聚集修改数据库的所有者。要修改所有者,你必须是新角色的直接或者间接的成员, 而且必须有 CREATEDB 的权限。(超级用户可以自动拥有所有的权限。)

第四个语句修改数据库的默认表空间。只有数据库的所有者或者超级用户可以修改默认表空, 你还需要在新的表空间上有创建的权限。这个命令会将这个数据库所有在默认表空间的表和索引 都移到新的表空间。注意,不在默认表空间的表和索引不受影响。

剩下的语句是用来修改MatrixDB数据库会话级别的参数默认值。当一个会话在数据库开启后, 这个会话提供的参数值将成为默认参数值。数据库在配置文件(postgresql.conf) 配置的默认值将被覆盖。只有数据库所有者或者超级用户才能修改会话默认值。某些参数不能用这 种方式设置,或者只能被超级用户设置。

参数

name

  • 将要被修改属性的数据库名称。

connlimit

  • 最大并发连接数。缺省值-1表示没有限制

parameter value

  • 将指定配置参数的数据库的会话默认值设置为给定值。如果这个值是 DEFAULT,或者是等效的 RESET,数据库的特定设置会被删除,因此系统范围的默认设置将在新会话中继承。用RESET ALL来清除所有的数据库设置。

newname

  • 新的数据库名。

new_owner

  • 新的数据库所有者。

new_tablespace

  • 新的数据库默认表空间。

注意

还可以为特定角色(用户)而不是数据库设置配置参数会话默认值。如果存在冲突,角色特定的设置将覆盖数据库特定的设置。 参见ALTER ROLE.

示例

为数据库mydatabase 设置默认的模式搜索路径:

ALTER DATABASE mydatabase SET search_path TO myschema, 
public, pg_catalog;

兼容性

ALTER DATABASE 语句是MatrixDB的扩展语句。

另见

CREATE DATABASE , DROP DATABASE