支援的版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3

ALTER DATABASE

ALTER DATABASE — 變更資料庫

概要

ALTER DATABASE name [ [ WITH ] option [ ... ] ]

where option can be:

    ALLOW_CONNECTIONS allowconn
    CONNECTION LIMIT connlimit
    IS_TEMPLATE istemplate

ALTER DATABASE name RENAME TO new_name

ALTER DATABASE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }

ALTER DATABASE name SET TABLESPACE new_tablespace

ALTER DATABASE name REFRESH COLLATION VERSION

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 權限。目前的資料庫不能被重新命名。(如果需要這樣做,請連線到另一個資料庫。)

第三種形式變更資料庫的擁有者。要變更擁有者,您必須能夠 SET ROLE 為新的擁有角色,並且您必須具有 CREATEDB 權限。(請注意,超級使用者會自動擁有所有這些權限。)

第四種形式變更資料庫的預設表格空間。只有資料庫擁有者或超級使用者可以執行此操作;您還必須擁有新表格空間的建立權限。此命令會將資料庫舊預設表格空間中的任何表格或索引實際移動到新的表格空間。新的預設表格空間對於此資料庫必須是空的,並且沒有人可以連線到該資料庫。非預設表格空間中的表格和索引不受影響。

其餘形式變更 PostgreSQL 資料庫執行階段組態變數的會期預設值。每當後續在該資料庫中啟動新的會期時,指定的值將成為會期預設值。資料庫特定的預設值會覆寫 postgresql.conf 中存在的任何設定,或從 postgres 命令列收到的任何設定。只有資料庫擁有者或超級使用者可以變更資料庫的會期預設值。某些變數無法以這種方式設定,或者只能由超級使用者設定。

參數

name

要變更其屬性的資料庫名稱。

allowconn

如果為 false,則任何人都無法連線到此資料庫。

connlimit

可以與此資料庫建立多少個並行連線。-1 表示沒有限制。

istemplate

如果為 true,則具有 CREATEDB 權限的任何使用者都可以複製此資料庫;如果為 false,則只有超級使用者或資料庫擁有者才能複製它。

new_name

資料庫的新名稱。

new_owner

資料庫的新擁有者。

new_tablespace

資料庫的新預設表格空間。

此形式的指令無法在交易區塊內執行。

REFRESH COLLATION VERSION

更新資料庫定序版本。有關背景資訊,請參閱說明

configuration_parameter
value

將指定組態參數的此資料庫的會期預設值設定為給定的值。 如果valueDEFAULT,或者等效地,使用RESET,則刪除資料庫特定的設定,因此新的會期將繼承系統範圍的預設設定。 使用RESET ALL來清除所有資料庫特定的設定。 SET FROM CURRENT將會期的參數目前值儲存為資料庫特定的值。

有關允許的參數名稱和值的更多資訊,請參閱SET第19章

說明

也可以將會期預設值繫結到特定的角色,而不是資料庫;請參閱ALTER ROLE。如果存在衝突,則角色特定的設定會覆寫資料庫特定的設定。

範例

預設停用資料庫 test 中的索引掃描

ALTER DATABASE test SET enable_indexscan TO off;

相容性

ALTER DATABASE 陳述式是 PostgreSQL 擴充功能。

提交更正

如果您在文件中看到任何不正確、與特定功能的體驗不符或需要進一步說明的內容,請使用此表格來報告文件問題。