{"Entry":{"collection":"sql","key":"alter-database","name":"ALTER DATABASE","aliases":["alterdatabase"],"metadata":{"aliases":["alterdatabase"],"changed_in":["7.4","8.0","8.1","8.3","8.4","9.0","9.5","14","15"],"changes":[{"from":"7.2","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":[],"removed":[]},"status":"added","synopsis":null,"to":"7.3"},{"from":"7.3","purpose_changed":false,"renamed":null,"sections":{"added":["parameters"],"changed":["description"],"removed":["diagnostics"]},"status":"changed","synopsis":{"added":["ALTER DATABASE name SET parameter { TO | = } { value | DEFAULT }","ALTER DATABASE name RESET parameter","ALTER DATABASE name RENAME TO newname"],"removed":["ALTER DATABASE name SET variable { TO | = } { value | DEFAULT }","ALTER DATABASE name RESET variable"]},"to":"7.4"},{"from":"7.4","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters","notes","see_also"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER DATABASE name OWNER TO new_owner"],"removed":[]},"to":"8.0"},{"from":"8.0","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER DATABASE name [ [ WITH ] option [ ... ] ]","where option can be:","CONNECTION LIMIT connlimit"],"removed":[]},"to":"8.1"},{"from":"8.1","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":null,"to":"8.2"},{"from":"8.2","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters","notes"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER DATABASE name RENAME TO newname","ALTER DATABASE name OWNER TO new_owner","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"],"removed":["ALTER DATABASE name SET parameter { TO | = } { value | DEFAULT }","ALTER DATABASE name RESET parameter","ALTER DATABASE name RENAME TO newname","ALTER DATABASE name OWNER TO new_owner"]},"to":"8.3"},{"from":"8.3","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters","see_also"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER DATABASE name SET TABLESPACE new_tablespace","ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }"],"removed":[]},"to":"8.4"},{"from":"8.4","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER DATABASE name RENAME TO new_name"],"removed":["where option can be:","ALTER DATABASE name RENAME TO newname"]},"to":"9.0"},{"from":"9.4","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":{"added":["ALLOW_CONNECTIONS allowconn","IS_TEMPLATE istemplate","ALTER DATABASE name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }"],"removed":[]},"to":"9.5"},{"from":"9.5","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"9.6"},{"from":"9.6","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"10"},{"from":"13","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER DATABASE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }"],"removed":[]},"to":"14"},{"from":"14","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER DATABASE name REFRESH COLLATION VERSION","ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }"],"removed":[]},"to":"15"},{"from":"15","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":null,"to":"16"},{"from":"16","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"17"},{"from":"17","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":null,"to":"18"}],"content_hash":"b2af778ccd8909067c2e7bdd93d02bf14d5be60bac6fdf7a42dd105e657a5635","editorial":{},"first_version":"7.3","group":"schema","imported_at":"2026-09-30T17:43:37.773512+08:00","last_version":"20","name":"ALTER DATABASE","object":"DATABASE","position":4001,"present_in":["7.3","7.4","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"purpose":"change a database","purpose_zh":"","related":["create-database","drop-database","set","create-tablespace"],"slug":"alter-database","source_rev":"a709ab85","synopsis":"ALTER DATABASE name [ [ WITH ] option [ ... ] ]\n\nwhere option can be:\n\nALLOW_CONNECTIONS allowconn\nCONNECTION LIMIT connlimit\nIS_TEMPLATE istemplate\n\nALTER DATABASE name RENAME TO new_name\n\nALTER DATABASE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n\nALTER DATABASE name SET TABLESPACE new_tablespace\n\nALTER DATABASE name REFRESH COLLATION VERSION\n\nALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }\nALTER DATABASE name SET configuration_parameter FROM CURRENT\nALTER DATABASE name RESET configuration_parameter\nALTER DATABASE name RESET ALL","verb":"ALTER"}},"Definition":{"Collection":"sql","Key":"alter-database","SourceDatabase":"center","Version":"18","SourceTable":"sqlcmd","SourceKey":"alter-database","SourceRevision":"a709ab85","Facts":{"anchor":"SQL-ALTERDATABASE","file":"sql-alterdatabase.html","lang":"en","name":"ALTER DATABASE","purpose":"change a database","purpose_zh":"","related":["create-database","drop-database","set","create-tablespace"],"sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eALTER DATABASE\u003c/code\u003e changes the attributes of a database.\u003c/p\u003e\u003cp\u003eThe first form changes certain per-database settings. (See below for details.) Only the database owner or a superuser can change these settings.\u003c/p\u003e\u003cp\u003eThe second form changes the name of the database. Only the database owner or a superuser can rename a database; non-superuser owners must also have the \u003ccode class=\"literal\"\u003eCREATEDB\u003c/code\u003e privilege. The current database cannot be renamed. (Connect to a different database if you need to do that.)\u003c/p\u003e\u003cp\u003eThe third form changes the owner of the database. To alter the owner, you must be able to \u003ccode class=\"literal\"\u003eSET ROLE\u003c/code\u003e to the new owning role, and you must have the \u003ccode class=\"literal\"\u003eCREATEDB\u003c/code\u003e privilege. (Note that superusers have all these privileges automatically.)\u003c/p\u003e\u003cp\u003eThe fourth form changes the default tablespace of the database. Only the database owner or a superuser can do this; you must also have create privilege for the new tablespace. This command physically moves any tables or indexes in the database's old default tablespace to the new tablespace. The new default tablespace must be empty for this database, and no one can be connected to the database. Tables and indexes in non-default tablespaces are unaffected. The method used to copy files to the new tablespace is affected by the \u003ca href=\"/docs/18/runtime-config-resource.html#GUC-FILE-COPY-METHOD\"\u003efile_copy_method\u003c/a\u003e setting.\u003c/p\u003e\u003cp\u003eThe remaining forms change the session default for a run-time configuration variable for a \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e database. Whenever a new session is subsequently started in that database, the specified value becomes the session default value. The database-specific default overrides whatever setting is present in \u003ccode class=\"filename\"\u003epostgresql.conf\u003c/code\u003e or has been received from the \u003ccode class=\"command\"\u003epostgres\u003c/code\u003e command line. Only the database owner or a superuser can change the session defaults for a database. Certain variables cannot be set this way, or can only be set by a superuser.\u003c/p\u003e","key":"description","title":"Description"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the database whose attributes are to be altered.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eallowconn\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eIf false then no one can connect to this database.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003econnlimit\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eHow many concurrent connections can be made to this database. -1 means no limit.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eistemplate\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eIf true, then this database can be cloned by any user with \u003ccode class=\"literal\"\u003eCREATEDB\u003c/code\u003e privileges; if false, then only superusers or the owner of the database can clone it.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe new name of the database.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_owner\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe new owner of the database.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_tablespace\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe new default tablespace of the database.\u003c/p\u003e\u003cp\u003eThis form of the command cannot be executed inside a transaction block.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eREFRESH COLLATION VERSION\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eUpdate the database collation version. See \u003ca href=\"/docs/18/sql-altercollation.html#SQL-ALTERCOLLATION-NOTES\" title=\"Notes\"\u003eNotes\u003c/a\u003e for background.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eSet this database's session default for the specified configuration parameter to the given value. If \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e is \u003ccode class=\"literal\"\u003eDEFAULT\u003c/code\u003e or, equivalently, \u003ccode class=\"literal\"\u003eRESET\u003c/code\u003e is used, the database-specific setting is removed, so the system-wide default setting will be inherited in new sessions. Use \u003ccode class=\"literal\"\u003eRESET ALL\u003c/code\u003e to clear all database-specific settings. \u003ccode class=\"literal\"\u003eSET FROM CURRENT\u003c/code\u003e saves the session's current value of the parameter as the database-specific value.\u003c/p\u003e\u003cp\u003eSee \u003ca href=\"/docs/18/sql-set.html\" title=\"SET\"\u003e\u003cspan class=\"refentrytitle\"\u003eSET\u003c/span\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/runtime-config.html\" title=\"Chapter 19. Server Configuration\"\u003eChapter 19\u003c/a\u003e for more information about allowed parameter names and values.\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"Parameters"},{"html":"\u003cp\u003eIt is also possible to tie a session default to a specific role rather than to a database; see \u003ca href=\"/docs/18/sql-alterrole.html\" title=\"ALTER ROLE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER ROLE\u003c/span\u003e\u003c/a\u003e. Role-specific settings override database-specific ones if there is a conflict.\u003c/p\u003e","key":"notes","title":"Notes"},{"html":"\u003cp\u003eTo disable index scans by default in the database \u003ccode class=\"literal\"\u003etest\u003c/code\u003e:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER DATABASE test SET enable_indexscan TO off;\n\u003c/pre\u003e","key":"examples","title":"Examples"},{"html":"\u003cp\u003eThe \u003ccode class=\"command\"\u003eALTER DATABASE\u003c/code\u003e statement is a \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e extension.\u003c/p\u003e","key":"compatibility","title":"Compatibility"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/create-database/?v=18\" title=\"CREATE DATABASE\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE DATABASE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-database/?v=18\" title=\"DROP DATABASE\"\u003e\u003cspan class=\"refentrytitle\"\u003eDROP DATABASE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/set/?v=18\" title=\"SET\"\u003e\u003cspan class=\"refentrytitle\"\u003eSET\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/create-tablespace/?v=18\" title=\"CREATE TABLESPACE\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE TABLESPACE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"See Also"}],"sections_same_as":"","slug":"18","synopsis_html":"ALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e [ [ WITH ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eoption\u003c/code\u003e\u003c/em\u003e [ ... ] ]\n\n\u003cspan class=\"phrase\"\u003ewhere \u003cem class=\"replaceable\"\u003e\u003ccode\u003eoption\u003c/code\u003e\u003c/em\u003e can be:\u003c/span\u003e\n\n    ALLOW_CONNECTIONS \u003cem class=\"replaceable\"\u003e\u003ccode\u003eallowconn\u003c/code\u003e\u003c/em\u003e\n    CONNECTION LIMIT \u003cem class=\"replaceable\"\u003e\u003ccode\u003econnlimit\u003c/code\u003e\u003c/em\u003e\n    IS_TEMPLATE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eistemplate\u003c/code\u003e\u003c/em\u003e\n\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e RENAME TO \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_name\u003c/code\u003e\u003c/em\u003e\n\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e OWNER TO { \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_owner\u003c/code\u003e\u003c/em\u003e | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e SET TABLESPACE \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_tablespace\u003c/code\u003e\u003c/em\u003e\n\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e REFRESH COLLATION VERSION\n\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e SET \u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e { TO | = } { \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e | DEFAULT }\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e SET \u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e FROM CURRENT\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e RESET \u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e RESET ALL","synopsis_text":"ALTER DATABASE name [ [ WITH ] option [ ... ] ]\n\nwhere option can be:\n\nALLOW_CONNECTIONS allowconn\nCONNECTION LIMIT connlimit\nIS_TEMPLATE istemplate\n\nALTER DATABASE name RENAME TO new_name\n\nALTER DATABASE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n\nALTER DATABASE name SET TABLESPACE new_tablespace\n\nALTER DATABASE name REFRESH COLLATION VERSION\n\nALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }\nALTER DATABASE name SET configuration_parameter FROM CURRENT\nALTER DATABASE name RESET configuration_parameter\nALTER DATABASE name RESET ALL"},"ManualEvidence":{},"MeasuredEvidence":{}},"Text":{"Collection":"sql","Key":"alter-database","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"ALTER DATABASE","Summary":"更改一个数据库","BodyHTML":"\u003cpre\u003eALTER DATABASE name [ [ WITH ] option [ ... ] ]\n\n其中option可以是：\n\nALLOW_CONNECTIONS allowconn\nCONNECTION LIMIT connlimit\nIS_TEMPLATE istemplate\n\nALTER DATABASE name RENAME TO new_name\n\nALTER DATABASE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n\nALTER DATABASE name SET TABLESPACE new_tablespace\n\nALTER DATABASE name REFRESH COLLATION VERSION\n\nALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }\nALTER DATABASE name SET configuration_parameter FROM CURRENT\nALTER DATABASE name RESET configuration_parameter\nALTER DATABASE name RESET ALL\u003c/pre\u003e\u003csection\u003e\u003ch2\u003e描述\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eALTER DATABASE\u003c/code\u003e更改一个数据库的属性。\u003c/p\u003e\u003cp\u003e第一种形式更改某些数据库级设置（详见下文）。只有数据库拥有者或者超级用户才能更改这些设置。\u003c/p\u003e\u003cp\u003e第二种形式更改数据库的名称。只有数据库拥有者或者超级用户可以重命名数据库；非超级用户拥有者还必须具有\u003ccode\u003eCREATEDB\u003c/code\u003e权限。当前连接的数据库不能被重命名（如果需要这样做，请连接到另一个数据库）。\u003c/p\u003e\u003cp\u003e第三种形式更改数据库的拥有者。要修改拥有者，你必须能够对新拥有者角色执行 \u003ccode\u003eSET ROLE\u003c/code\u003e，并且还必须具有\u003ccode\u003eCREATEDB\u003c/code\u003e权限。（注意，超级用户会自动拥有这些权限。）\u003c/p\u003e\u003cp\u003e第四种形式更改数据库的默认表空间。只有数据库拥有者或者超级用户可以这样做；你还必须对新表空间具有创建权限。该命令会将数据库旧默认表空间中的所有表和索引在物理上移动到新表空间中。对于该数据库而言，新默认表空间必须为空，并且不能有人连接到该数据库。位于非默认表空间中的表和索引不受影响。复制文件到新表空间所使用的方法会受到\u003ca href=\"/docs/18/runtime-config-resource.html#GUC-FILE-COPY-METHOD\" rel=\"nofollow\"\u003efile_copy_method\u003c/a\u003e设置的影响。\u003c/p\u003e\u003cp\u003e其余形式会更改某个\u003cspan\u003ePostgreSQL\u003c/span\u003e数据库的运行时配置变量的会话默认值。此后每当在该数据库中启动一个新会话时，指定的值就会成为会话默认值。数据库特定的默认值会覆盖\u003ccode\u003epostgresql.conf\u003c/code\u003e中的设置，或者从\u003ccode\u003epostgres\u003c/code\u003e命令行接收到的设置。只有数据库拥有者或者超级用户才能更改该数据库的会话默认值。某些变量不能以这种方式设置，或者只能由超级用户设置。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e参数\u003c/h2\u003e\u003cdiv\u003e\u003cdl\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e要修改其属性的数据库名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eallowconn\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e如果为 false，则任何人都不能连接到该数据库。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003econnlimit\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这个数据库允许多少并发连接。-1 表示没有限制。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eistemplate\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e如果为 true，则任何具有 \u003ccode\u003eCREATEDB\u003c/code\u003e 权限的用户都可以克隆该数据库；如果为 false，则只有超级用户或该数据库的拥有者可以克隆它。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003enew_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e数据库的新名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003enew_owner\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e数据库的新拥有者。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003enew_tablespace\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e数据库的新默认表空间。\u003c/p\u003e\u003cp\u003e这种形式的命令不能在事务块内执行。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eREFRESH COLLATION VERSION\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e更新数据库排序规则版本。背景信息见\u003ca href=\"/docs/18/sql-altercollation.html#SQL-ALTERCOLLATION-NOTES\" title=\"注解\" rel=\"nofollow\"\u003e注解\u003c/a\u003e。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e将此数据库在指定配置参数上的会话默认值设为给定值。如果 \u003cem\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e是\u003ccode\u003eDEFAULT\u003c/code\u003e，或者等效地使用了 \u003ccode\u003eRESET\u003c/code\u003e，则数据库特定设置会被移除，因此新会话将继承系统范围的默认设置。使用 \u003ccode\u003eRESET ALL\u003c/code\u003e可清除所有数据库特定设置。\u003ccode\u003eSET FROM CURRENT\u003c/code\u003e会把该参数在当前会话中的值保存为数据库特定值。\u003c/p\u003e\u003cp\u003e关于允许的参数名和值的更多信息，见\u003ca href=\"/docs/18/sql-set.html\" title=\"SET\" rel=\"nofollow\"\u003e\u003cspan\u003eSET\u003c/span\u003e\u003c/a\u003e和\u003ca href=\"/docs/18/runtime-config.html\" rel=\"nofollow\"\u003e第 19 章\u003c/a\u003e。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e注解\u003c/h2\u003e\u003cp\u003e也可以把会话默认值绑定到特定角色，而不是数据库；见\u003ca href=\"/docs/18/sql-alterrole.html\" title=\"ALTER ROLE\" rel=\"nofollow\"\u003e\u003cspan\u003eALTER ROLE\u003c/span\u003e\u003c/a\u003e。如果发生冲突，角色特定设置会覆盖数据库特定设置。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e示例\u003c/h2\u003e\u003cp\u003e要在数据库\u003ccode\u003etest\u003c/code\u003e中默认禁用索引扫描：\u003c/p\u003e\u003cpre\u003eALTER DATABASE test SET enable_indexscan TO off;\n\u003c/pre\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e兼容性\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eALTER DATABASE\u003c/code\u003e语句是一个\u003cspan\u003ePostgreSQL\u003c/span\u003e扩展。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e另见\u003c/h2\u003e\u003cspan\u003e\u003ca href=\"/wiki/sql/create-database/?v=18\" title=\"CREATE DATABASE\" rel=\"nofollow\"\u003e\u003cspan\u003eCREATE DATABASE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-database/?v=18\" title=\"DROP DATABASE\" rel=\"nofollow\"\u003e\u003cspan\u003eDROP DATABASE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/set/?v=18\" title=\"SET\" rel=\"nofollow\"\u003e\u003cspan\u003eSET\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/create-tablespace/?v=18\" title=\"CREATE TABLESPACE\" rel=\"nofollow\"\u003e\u003cspan\u003eCREATE TABLESPACE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\u003c/section\u003e","SourceRevision":"1b5ca64c","ContentHash":"1a968149438df2331303e8f1f094efffae472dcbefc613574ae02ea35855262e","Payload":{"purpose_zh":"更改一个数据库","sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eALTER DATABASE\u003c/code\u003e更改一个数据库的属性。\u003c/p\u003e\u003cp\u003e第一种形式更改某些数据库级设置（详见下文）。只有数据库拥有者或者超级用户才能更改这些设置。\u003c/p\u003e\u003cp\u003e第二种形式更改数据库的名称。只有数据库拥有者或者超级用户可以重命名数据库；非超级用户拥有者还必须具有\u003ccode class=\"literal\"\u003eCREATEDB\u003c/code\u003e权限。当前连接的数据库不能被重命名（如果需要这样做，请连接到另一个数据库）。\u003c/p\u003e\u003cp\u003e第三种形式更改数据库的拥有者。要修改拥有者，你必须能够对新拥有者角色执行 \u003ccode class=\"literal\"\u003eSET ROLE\u003c/code\u003e，并且还必须具有\u003ccode class=\"literal\"\u003eCREATEDB\u003c/code\u003e权限。（注意，超级用户会自动拥有这些权限。）\u003c/p\u003e\u003cp\u003e第四种形式更改数据库的默认表空间。只有数据库拥有者或者超级用户可以这样做；你还必须对新表空间具有创建权限。该命令会将数据库旧默认表空间中的所有表和索引在物理上移动到新表空间中。对于该数据库而言，新默认表空间必须为空，并且不能有人连接到该数据库。位于非默认表空间中的表和索引不受影响。复制文件到新表空间所使用的方法会受到\u003ca href=\"/docs/18/runtime-config-resource.html#GUC-FILE-COPY-METHOD\"\u003efile_copy_method\u003c/a\u003e设置的影响。\u003c/p\u003e\u003cp\u003e其余形式会更改某个\u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e数据库的运行时配置变量的会话默认值。此后每当在该数据库中启动一个新会话时，指定的值就会成为会话默认值。数据库特定的默认值会覆盖\u003ccode class=\"filename\"\u003epostgresql.conf\u003c/code\u003e中的设置，或者从\u003ccode class=\"command\"\u003epostgres\u003c/code\u003e命令行接收到的设置。只有数据库拥有者或者超级用户才能更改该数据库的会话默认值。某些变量不能以这种方式设置，或者只能由超级用户设置。\u003c/p\u003e","key":"description","title":"描述"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e要修改其属性的数据库名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eallowconn\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e如果为 false，则任何人都不能连接到该数据库。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003econnlimit\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这个数据库允许多少并发连接。-1 表示没有限制。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eistemplate\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e如果为 true，则任何具有 \u003ccode class=\"literal\"\u003eCREATEDB\u003c/code\u003e 权限的用户都可以克隆该数据库；如果为 false，则只有超级用户或该数据库的拥有者可以克隆它。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e数据库的新名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_owner\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e数据库的新拥有者。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_tablespace\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e数据库的新默认表空间。\u003c/p\u003e\u003cp\u003e这种形式的命令不能在事务块内执行。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eREFRESH COLLATION VERSION\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e更新数据库排序规则版本。背景信息见\u003ca href=\"/docs/18/sql-altercollation.html#SQL-ALTERCOLLATION-NOTES\" title=\"注解\"\u003e注解\u003c/a\u003e。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e将此数据库在指定配置参数上的会话默认值设为给定值。如果 \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e是\u003ccode class=\"literal\"\u003eDEFAULT\u003c/code\u003e，或者等效地使用了 \u003ccode class=\"literal\"\u003eRESET\u003c/code\u003e，则数据库特定设置会被移除，因此新会话将继承系统范围的默认设置。使用 \u003ccode class=\"literal\"\u003eRESET ALL\u003c/code\u003e可清除所有数据库特定设置。\u003ccode class=\"literal\"\u003eSET FROM CURRENT\u003c/code\u003e会把该参数在当前会话中的值保存为数据库特定值。\u003c/p\u003e\u003cp\u003e关于允许的参数名和值的更多信息，见\u003ca href=\"/docs/18/sql-set.html\" title=\"SET\"\u003e\u003cspan class=\"refentrytitle\"\u003eSET\u003c/span\u003e\u003c/a\u003e和\u003ca href=\"/docs/18/runtime-config.html\" title=\"第 19 章 服务器配置\"\u003e第 19 章\u003c/a\u003e。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"参数"},{"html":"\u003cp\u003e也可以把会话默认值绑定到特定角色，而不是数据库；见\u003ca href=\"/docs/18/sql-alterrole.html\" title=\"ALTER ROLE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER ROLE\u003c/span\u003e\u003c/a\u003e。如果发生冲突，角色特定设置会覆盖数据库特定设置。\u003c/p\u003e","key":"notes","title":"注解"},{"html":"\u003cp\u003e要在数据库\u003ccode class=\"literal\"\u003etest\u003c/code\u003e中默认禁用索引扫描：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER DATABASE test SET enable_indexscan TO off;\n\u003c/pre\u003e","key":"examples","title":"示例"},{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eALTER DATABASE\u003c/code\u003e语句是一个\u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e扩展。\u003c/p\u003e","key":"compatibility","title":"兼容性"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/create-database/?v=18\" title=\"CREATE DATABASE\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE DATABASE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-database/?v=18\" title=\"DROP DATABASE\"\u003e\u003cspan class=\"refentrytitle\"\u003eDROP DATABASE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/set/?v=18\" title=\"SET\"\u003e\u003cspan class=\"refentrytitle\"\u003eSET\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/create-tablespace/?v=18\" title=\"CREATE TABLESPACE\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE TABLESPACE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"另见"}],"sections_same_as":"","synopsis_html":"ALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e [ [ WITH ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eoption\u003c/code\u003e\u003c/em\u003e [ ... ] ]\n\n\u003cspan class=\"phrase\"\u003e其中\u003cem class=\"replaceable\"\u003e\u003ccode\u003eoption\u003c/code\u003e\u003c/em\u003e可以是：\u003c/span\u003e\n\n    ALLOW_CONNECTIONS \u003cem class=\"replaceable\"\u003e\u003ccode\u003eallowconn\u003c/code\u003e\u003c/em\u003e\n    CONNECTION LIMIT \u003cem class=\"replaceable\"\u003e\u003ccode\u003econnlimit\u003c/code\u003e\u003c/em\u003e\n    IS_TEMPLATE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eistemplate\u003c/code\u003e\u003c/em\u003e\n\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e RENAME TO \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_name\u003c/code\u003e\u003c/em\u003e\n\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e OWNER TO { \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_owner\u003c/code\u003e\u003c/em\u003e | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e SET TABLESPACE \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_tablespace\u003c/code\u003e\u003c/em\u003e\n\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e REFRESH COLLATION VERSION\n\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e SET \u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e { TO | = } { \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e | DEFAULT }\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e SET \u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e FROM CURRENT\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e RESET \u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e\nALTER DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e RESET ALL","synopsis_text":"ALTER DATABASE name [ [ WITH ] option [ ... ] ]\n\n其中option可以是：\n\nALLOW_CONNECTIONS allowconn\nCONNECTION LIMIT connlimit\nIS_TEMPLATE istemplate\n\nALTER DATABASE name RENAME TO new_name\n\nALTER DATABASE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n\nALTER DATABASE name SET TABLESPACE new_tablespace\n\nALTER DATABASE name REFRESH COLLATION VERSION\n\nALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }\nALTER DATABASE name SET configuration_parameter FROM CURRENT\nALTER DATABASE name RESET configuration_parameter\nALTER DATABASE name RESET ALL"}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","7.3","7.4","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
