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
許可權。(請注意,超級使用者自動擁有所有這些許可權。)
第四種形式更改資料庫的預設表空間。只有資料庫所有者或超級使用者才能執行此操作;您還必須擁有新表空間的建立許可權。此命令會將資料庫舊的預設表空間中的任何表或索引物理移動到新的表空間。新的預設表空間對於此資料庫必須是空的,並且不能有人連線到該資料庫。非預設表空間中的表和索引不受影響。複製檔案到新表空間的方法受 file_copy_method 設定的影響。
其餘形式更改 PostgreSQL 資料庫的執行時配置變數的會話預設值。每當隨後在該資料庫中啟動新會話時,指定的值將成為會話預設值。資料庫特定的預設值會覆蓋 postgresql.conf
中的任何設定或從 postgres
命令列接收到的設定。只有資料庫所有者或超級使用者才能更改資料庫的會話預設值。某些變數不能透過這種方式設定,或者只能由超級使用者設定。
name
要更改其屬性的資料庫的名稱。
allowconn
如果為 false,則沒有人可以連線到此資料庫。
connlimit
可以連線到此資料庫的併發連線數。-1 表示無限制。
istemplate
如果為 true,則任何具有 CREATEDB
許可權的使用者都可以克隆此資料庫;如果為 false,則只有超級使用者或資料庫所有者可以克隆它。
new_name
資料庫的新名稱。
new_owner
資料庫的新所有者。
new_tablespace
資料庫的新預設表空間。
此形式的命令不能在事務塊內執行。
REFRESH COLLATION VERSION
更新資料庫的排序規則版本。有關背景資訊,請參閱 Notes。
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 的擴充套件。
如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表單 來報告文件問題。