ALTER DATABASE

From PostgreSQL wiki

(Difference between revisions)
Jump to: navigation, search
(描述)
(参数)
Line 39: Line 39:
 
=====参数=====
 
=====参数=====
  
name
+
;name
The name of the database whose attributes are to be altered.
+
:需要修改属性的数据库的名字。
  
connlimit
+
;connlimit
How many concurrent connections can be made to this database. -1 means no limit.
+
:对这个数据库可以做多少个并发连接。-1 意味着没有限制。
  
new_name
+
;new_name
The new name of the database.
+
:数据库的新名字。
  
new_owner
+
;new_owner
The new owner of the database.
+
:数据库的新所有者。
  
new_tablespace
+
;new_tablespace
The new default tablespace of the database.
+
:数据库的新缺省表空间。
  
configuration_parameter
+
;configuration_parameter
value
+
;value
Set this database's session default for the specified configuration parameter to the given value. If value is DEFAULT or, equivalently, RESET is used, the database-specific setting is removed, so the system-wide default setting will be inherited in new sessions. Use RESET ALL to clear all database-specific settings. SET FROM CURRENT saves the session's current value of the parameter as the database-specific value.
+
:将configuration_parameter指定的数据库会话缺省参数设置为给定值value。如果 value DEFAULT 或者是等效的 RESET,那么数据库特定的设置将被删除,因此在新的会话中将使用系统范围的缺省设置。 用 RESET ALL 清除所有数据库特定设置。SET FROM CURRENT将会话的当前缺省值设置为数据库特定值。
  
See SET and Chapter 18 for more information about allowed parameter names and values.
+
:参阅 [[SET]] 和 第 18 章获取有关合法的变量名与取值的更多信息。
  
 
=====注意=====
 
=====注意=====

Revision as of 09:57, 11 June 2013

Contents

名字

ALTER DATABASE -- 修改一个数据库

语法概要
ALTER DATABASE name [ [ WITH ] option [ ... ] ]

where option can be:

    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 权限。(请注意,超级用户自动拥有所有这些权限。)

第四种命令形式修改数据库的缺省表空间。只有数据库所有者或超级用户可以这样做;你也必须在新的表空间中具备create权限。这条命令物理上将数据库的所有表和索引从原先的表空间移动到新的表空间。值得注意的是,这个操作对非缺省表空间中的表和索引并不起作用。

其余的命令形式修改 PostgreSQL 数据库会话缺省的运行时配置变量。 一旦变量修改,建立新会话的时候就会使用这些修改后的值作为缺省值。特定每个数据库的设置的优先级比在postgresql.conf中进行的或从postgres命令行接收的设置更高。只有数据库所有者或者超级用户可以改变会话的缺省设置。有些变量不能用这种方法设置,或者是只能由超级用户设置。

参数
name
需要修改属性的数据库的名字。
connlimit
对这个数据库可以做多少个并发连接。-1 意味着没有限制。
new_name
数据库的新名字。
new_owner
数据库的新所有者。
new_tablespace
数据库的新缺省表空间。
configuration_parameter
value
将configuration_parameter指定的数据库会话缺省参数设置为给定值value。如果 value 是 DEFAULT 或者是等效的 RESET,那么数据库特定的设置将被删除,因此在新的会话中将使用系统范围的缺省设置。 用 RESET ALL 清除所有数据库特定设置。SET FROM CURRENT将会话的当前缺省值设置为数据库特定值。
参阅 SET 和 第 18 章获取有关合法的变量名与取值的更多信息。
注意

It is also possible to tie a session default to a specific role rather than to a database; see ALTER ROLE. Role-specific settings override database-specific ones if there is a conflict.

示例

To disable index scans by default in the database test:

ALTER DATABASE test SET enable_indexscan TO off;

兼容性

ALTER DATABASE语句是PostgreSQL的扩展。

参见

CREATE DATABASE, DROP DATABASE, SET, CREATE TABLESPACE

Personal tools