ALTER DATABASE — 變更資料庫
ALTER DATABASEname
[ [ WITH ]option
[ ... ] ] whereoption
can be: ALLOW_CONNECTIONSallowconn
CONNECTION LIMITconnlimit
IS_TEMPLATEistemplate
ALTER DATABASEname
RENAME TOnew_name
ALTER DATABASEname
OWNER TO {new_owner
| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER DATABASEname
SET TABLESPACEnew_tablespace
ALTER DATABASEname
REFRESH COLLATION VERSION ALTER DATABASEname
SETconfiguration_parameter
{ TO | = } {value
| DEFAULT } ALTER DATABASEname
SETconfiguration_parameter
FROM CURRENT ALTER DATABASEname
RESETconfiguration_parameter
ALTER DATABASEname
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
將指定組態參數的此資料庫的會期預設值設定為給定的值。 如果value
是DEFAULT
,或者等效地,使用RESET
,則刪除資料庫特定的設定,因此新的會期將繼承系統範圍的預設設定。 使用RESET ALL
來清除所有資料庫特定的設定。 SET FROM CURRENT
將會期的參數目前值儲存為資料庫特定的值。
也可以將會期預設值繫結到特定的角色,而不是資料庫;請參閱ALTER ROLE。如果存在衝突,則角色特定的設定會覆寫資料庫特定的設定。
預設停用資料庫 test
中的索引掃描
ALTER DATABASE test SET enable_indexscan TO off;
ALTER DATABASE
陳述式是 PostgreSQL 擴充功能。
如果您在文件中看到任何不正確、與特定功能的體驗不符或需要進一步說明的內容,請使用此表格來報告文件問題。