跳转至

ALTER DATABASE

ALTER DATABASE

修改数据库的属性

语法

``` sql 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的权限。(超级用户可以自动拥有所有的权限。)

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

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

参数

该SQL命令参数见下

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 语句是SeaboxMPP的扩展语句。
相关SQL命令
CREATE DATABASE, DROP DATABASE, SET, CREATE TABLESPACE