| <!-- |
| doc/src/sgml/ref/alter_database.sgml |
| PostgreSQL documentation |
| --> |
| |
| <refentry id="sql-alterdatabase"> |
| <indexterm zone="sql-alterdatabase"> |
| <primary>ALTER DATABASE</primary> |
| </indexterm> |
| |
| <refmeta> |
| <refentrytitle>ALTER DATABASE</refentrytitle> |
| <manvolnum>7</manvolnum> |
| <refmiscinfo>SQL - Language Statements</refmiscinfo> |
| </refmeta> |
| |
| <refnamediv> |
| <refname>ALTER DATABASE</refname> |
| <refpurpose>change a database</refpurpose> |
| </refnamediv> |
| |
| <refsynopsisdiv> |
| <synopsis> |
| ALTER DATABASE <replaceable class="parameter">name</replaceable> [ [ WITH ] <replaceable class="parameter">option</replaceable> [ ... ] ] |
| |
| <phrase>where <replaceable class="parameter">option</replaceable> can be:</phrase> |
| |
| ALLOW_CONNECTIONS <replaceable class="parameter">allowconn</replaceable> |
| CONNECTION LIMIT <replaceable class="parameter">connlimit</replaceable> |
| IS_TEMPLATE <replaceable class="parameter">istemplate</replaceable> |
| |
| ALTER DATABASE <replaceable class="parameter">name</replaceable> RENAME TO <replaceable>new_name</replaceable> |
| |
| ALTER DATABASE <replaceable class="parameter">name</replaceable> OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER | SESSION_USER } |
| |
| ALTER DATABASE <replaceable class="parameter">name</replaceable> SET TABLESPACE <replaceable class="parameter">new_tablespace</replaceable> |
| |
| ALTER DATABASE <replaceable class="parameter">name</replaceable> SET <replaceable>configuration_parameter</replaceable> { TO | = } { <replaceable>value</replaceable> | DEFAULT } |
| ALTER DATABASE <replaceable class="parameter">name</replaceable> SET <replaceable>configuration_parameter</replaceable> FROM CURRENT |
| ALTER DATABASE <replaceable class="parameter">name</replaceable> RESET <replaceable>configuration_parameter</replaceable> |
| ALTER DATABASE <replaceable class="parameter">name</replaceable> RESET ALL |
| </synopsis> |
| </refsynopsisdiv> |
| |
| <refsect1> |
| <title>Description</title> |
| |
| <para> |
| <command>ALTER DATABASE</command> changes the attributes |
| of a database. |
| </para> |
| |
| <para> |
| The first form changes certain per-database settings. (See below for |
| details.) Only the database owner or a superuser can change these settings. |
| </para> |
| |
| <para> |
| 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 |
| <literal>CREATEDB</literal> privilege. The current database cannot |
| be renamed. (Connect to a different database if you need to do |
| that.) |
| </para> |
| |
| <para> |
| 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 |
| <literal>CREATEDB</literal> privilege. |
| (Note that superusers have all these privileges automatically.) |
| </para> |
| |
| <para> |
| 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. 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. |
| </para> |
| |
| <para> |
| The remaining forms change the session default for a run-time |
| configuration variable for a <productname>PostgreSQL</productname> |
| 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 <filename>postgresql.conf</filename> or has been received from the |
| <command>postgres</command> 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. |
| </para> |
| </refsect1> |
| |
| <refsect1> |
| <title>Parameters</title> |
| |
| <variablelist> |
| <varlistentry> |
| <term><replaceable class="parameter">name</replaceable></term> |
| <listitem> |
| <para> |
| The name of the database whose attributes are to be altered. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><replaceable class="parameter">allowconn</replaceable></term> |
| <listitem> |
| <para> |
| If false then no one can connect to this database. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><replaceable class="parameter">connlimit</replaceable></term> |
| <listitem> |
| <para> |
| How many concurrent connections can be made |
| to this database. -1 means no limit. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><replaceable class="parameter">istemplate</replaceable></term> |
| <listitem> |
| <para> |
| If true, then this database can be cloned by any user with <literal>CREATEDB</literal> |
| privileges; if false, then only superusers or the owner of the |
| database can clone it. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><replaceable>new_name</replaceable></term> |
| <listitem> |
| <para> |
| The new name of the database. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><replaceable class="parameter">new_owner</replaceable></term> |
| <listitem> |
| <para> |
| The new owner of the database. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><replaceable class="parameter">new_tablespace</replaceable></term> |
| <listitem> |
| <para> |
| The new default tablespace of the database. |
| </para> |
| |
| <para> |
| This form of the command cannot be executed inside a transaction block. |
| </para> |
| </listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><replaceable>configuration_parameter</replaceable></term> |
| <term><replaceable>value</replaceable></term> |
| <listitem> |
| <para> |
| Set this database's session default for the specified configuration |
| parameter to the given value. If |
| <replaceable>value</replaceable> is <literal>DEFAULT</literal> |
| or, equivalently, <literal>RESET</literal> is used, the |
| database-specific setting is removed, so the system-wide default |
| setting will be inherited in new sessions. Use <literal>RESET |
| ALL</literal> to clear all database-specific settings. |
| <literal>SET FROM CURRENT</literal> saves the session's current value of |
| the parameter as the database-specific value. |
| </para> |
| |
| <para> |
| See <xref linkend="sql-set"/> and <xref linkend="runtime-config"/> |
| for more information about allowed parameter names |
| and values. |
| </para> |
| </listitem> |
| </varlistentry> |
| </variablelist> |
| </refsect1> |
| |
| <refsect1> |
| <title>Notes</title> |
| |
| <para> |
| It is also possible to tie a session default to a specific role |
| rather than to a database; see |
| <xref linkend="sql-alterrole"/>. |
| Role-specific settings override database-specific |
| ones if there is a conflict. |
| </para> |
| </refsect1> |
| |
| <refsect1> |
| <title>Examples</title> |
| |
| <para> |
| To disable index scans by default in the database |
| <literal>test</literal>: |
| |
| <programlisting> |
| ALTER DATABASE test SET enable_indexscan TO off; |
| </programlisting></para> |
| </refsect1> |
| |
| <refsect1> |
| <title>Compatibility</title> |
| |
| <para> |
| The <command>ALTER DATABASE</command> statement is a |
| <productname>PostgreSQL</productname> extension. |
| </para> |
| </refsect1> |
| |
| <refsect1> |
| <title>See Also</title> |
| |
| <simplelist type="inline"> |
| <member><xref linkend="sql-createdatabase"/></member> |
| <member><xref linkend="sql-dropdatabase"/></member> |
| <member><xref linkend="sql-set"/></member> |
| <member><xref linkend="sql-createtablespace"/></member> |
| </simplelist> |
| </refsect1> |
| </refentry> |