aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/ref/alter_database.sgml
blob: 76a4ac014afc40d70ebb30b540872927a1539a36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_database.sgml,v 1.3 2002/05/17 01:19:16 tgl Exp $
PostgreSQL documentation
-->

<refentry id="SQL-ALTERDATABASE">
 <refmeta>
  <refentrytitle id="sql-alterdatabase-title">ALTER DATABASE</refentrytitle>
  <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> SET <replaceable>variable</replaceable> { TO | = } { <replaceable>value</replaceable> | DEFAULT }
ALTER DATABASE <replaceable class="PARAMETER">name</replaceable> RESET <replaceable>variable</replaceable>
</synopsis>
 </refsynopsisdiv>

 <refsect1>
  <title>Description</title>

  <para>
   <command>ALTER DATABASE</command> is used to change the session
   default of 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</>
   or has been received from the postmaster.
  </para>

  <para>
   Only a superuser or the database owner can change the session defaults for a
   database.
  </para>

  <refsect2>
   <title>Parameters</title>

   <para>
    <variablelist>
     <varlistentry>
      <term><replaceable class="PARAMETER">name</replaceable></term>
      <listitem>
       <para>
	The name of the database whose session defaults are to be altered.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><replaceable>variable</replaceable></term>
      <term><replaceable>value</replaceable></term>
      <listitem>
       <para>
        Set the session default for this database of the specified
        configuration variable to the given value.  If
        <replaceable>value</replaceable> is <literal>DEFAULT</literal>
        or, equivalently, <literal>RESET</literal> is used, the
        database-specific variable setting is removed and the system-wide
	default
        setting will be inherited in new sessions.  Use <literal>RESET
        ALL</literal> to clear all settings.
       </para>

       <para>
        See <xref linkend="sql-set" endterm="sql-set-title"> and the
        <citetitle>Administrator's Guide</citetitle> for more
        information about allowed variable names and values.
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
   </para>
  </refsect2>
 </refsect1>

 <refsect1>
  <title>Diagnostics</title>

  <para>
   <variablelist>
    <varlistentry>
     <term><computeroutput>ALTER DATABASE</computeroutput></term>
     <listitem>
      <para>
       Message returned if the alteration was successful.
      </para>
     </listitem>
    </varlistentry>
     
    <varlistentry>
     <term><computeroutput>ERROR:  database "dbname" does not exist</computeroutput></term>
     <listitem>
      <para>
       Error message returned if the specified database is not known
       to the system.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>

 <refsect1>
  <title>Notes</title>

  <para>
   Using <xref linkend="sql-alteruser" endterm="sql-alteruser-title">,
   it is also possible to tie a session default to a specific user
   rather than a database.  User-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-alteruser" endterm="sql-alteruser-title"></member>
   <member><xref linkend="sql-createdatabase" endterm="sql-createdatabase-title"></member>
   <member><xref linkend="sql-dropdatabase" endterm="sql-dropdatabase-title"></member>
   <member><xref linkend="sql-set" endterm="sql-set-title"></member>
  </simplelist>
 </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:"/usr/lib/sgml/catalog"
sgml-local-ecat-files:nil
End:
-->