X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=doc%2Fsrc%2Fsgml%2Fref%2Falter_database.sgml;h=3724c05e2c0cfd6c1128094d9545747f8a75970c;hb=fbb1d7d73f8e23a3a61e702629c53cef48cb0918;hp=12447d6b0a754740ca5b8769f464da1608165564;hpb=b256f2426433c56b4bea3a8102757749885b81ba;p=postgresql diff --git a/doc/src/sgml/ref/alter_database.sgml b/doc/src/sgml/ref/alter_database.sgml index 12447d6b0a..3724c05e2c 100644 --- a/doc/src/sgml/ref/alter_database.sgml +++ b/doc/src/sgml/ref/alter_database.sgml @@ -1,11 +1,16 @@ + + ALTER DATABASE + + - ALTER DATABASE + ALTER DATABASE + 7 SQL - Language Statements @@ -16,10 +21,24 @@ PostgreSQL documentation -ALTER DATABASE name SET variable { TO | = } { value | DEFAULT } -ALTER DATABASE name RESET variable +ALTER DATABASE name [ [ WITH ] option [ ... ] ] + +where option can be: + + IS_TEMPLATE istemplate + ALLOW_CONNECTIONS allowconn + CONNECTION LIMIT connlimit + +ALTER DATABASE name RENAME TO new_name + +ALTER DATABASE name OWNER TO new_owner -ALTER DATABASE name RENAME TO newname +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 @@ -27,29 +46,53 @@ ALTER DATABASE name RENAME TO Description - ALTER DATABASE is used to change the attributes + ALTER DATABASE changes the attributes of a database. - The first two forms change the session default of a run-time - configuration variable for a PostgreSQL - 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 postgresql.conf or has been received from the - postmaster command line. Only the database - owner or a superuser can change the session defaults for a - database. + The first form changes certain per-database settings. (See below for + details.) Only the database owner or a superuser can change these settings. - The third form changes the name of the database. Only the database - owner can rename a database, and only if he has the + The 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 CREATEDB privilege. The current database cannot be renamed. (Connect to a different database if you need to do that.) + + + The third form changes the owner of the database. + To alter the owner, you must own the database and also be a direct or + indirect member of the new owning role, and you must have the + CREATEDB privilege. + (Note that superusers have all these privileges automatically.) + + + + The 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. Note that tables and indexes + in non-default tablespaces are not affected. + + + + The remaining forms change the session default for a run-time + configuration variable for a PostgreSQL + 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 postgresql.conf or has been received from the + postgres 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. + @@ -60,77 +103,102 @@ ALTER DATABASE name RENAME TO name - The name of the database whose session defaults are to be altered. + The name of the database whose attributes are to be altered. - variable - value + istemplate + + + If true, then this database can be cloned by any user with CREATEDB + privileges; if false, then only superusers or the owner of the + database can clone it. + + + + + + allowconn + + + If false then no one can connect to this database. + + + + + + connlimit - Set the session default for this database of the specified - configuration variable to the given value. If - value is DEFAULT - or, equivalently, RESET is used, the - database-specific variable setting is removed and the system-wide - default - setting will be inherited in new sessions. Use RESET - ALL to clear all settings. - - - - See and - for more information about allowed variable names - and values. + How many concurrent connections can be made + to this database. -1 means no limit. - newname + new_name The new name of the database. - - - - Diagnostics - - - - ALTER DATABASE - - - Message returned if the alteration was successful. - - - - - - ERROR: database "dbname" does not exist - - - Error message returned if the specified database is not known - to the system. - - - - + + new_owner + + + The new owner of the database. + + + + + + new_tablespace + + + The new default tablespace of the database. + + + + + + configuration_parameter + 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. + + + + See and + for more information about allowed parameter names + and values. + + + + Notes - Using , - it is also possible to tie a session default to a specific user - rather than a database. User-specific settings override database-specific + It is also possible to tie a session default to a specific role + rather than to a database; see + . + Role-specific settings override database-specific ones if there is a conflict. @@ -144,13 +212,12 @@ ALTER DATABASE name RENAME TO ALTER DATABASE test SET enable_indexscan TO off; - - + Compatibility - + The ALTER DATABASE statement is a PostgreSQL extension. @@ -161,27 +228,10 @@ ALTER DATABASE test SET enable_indexscan TO off; See Also - - - - + + + + - -