1<!--
2doc/src/sgml/ref/commit_prepared.sgml
3PostgreSQL documentation
4-->
5
6<refentry id="sql-commit-prepared">
7 <indexterm zone="sql-commit-prepared">
8  <primary>COMMIT PREPARED</primary>
9 </indexterm>
10
11 <refmeta>
12  <refentrytitle>COMMIT PREPARED</refentrytitle>
13  <manvolnum>7</manvolnum>
14  <refmiscinfo>SQL - Language Statements</refmiscinfo>
15 </refmeta>
16
17 <refnamediv>
18  <refname>COMMIT PREPARED</refname>
19  <refpurpose>commit a transaction that was earlier prepared for two-phase commit</refpurpose>
20 </refnamediv>
21
22 <refsynopsisdiv>
23<synopsis>
24COMMIT PREPARED <replaceable class="parameter">transaction_id</replaceable>
25</synopsis>
26 </refsynopsisdiv>
27
28 <refsect1>
29  <title>Description</title>
30
31  <para>
32   <command>COMMIT PREPARED</command> commits a transaction that is in
33   prepared state.
34  </para>
35 </refsect1>
36
37 <refsect1>
38  <title>Parameters</title>
39
40  <variablelist>
41   <varlistentry>
42    <term><replaceable class="parameter">transaction_id</replaceable></term>
43    <listitem>
44     <para>
45      The transaction identifier of the transaction that is to be
46      committed.
47     </para>
48    </listitem>
49   </varlistentry>
50  </variablelist>
51 </refsect1>
52
53 <refsect1>
54  <title>Notes</title>
55
56  <para>
57   To commit a prepared transaction, you must be either the same user that
58   executed the transaction originally, or a superuser.  But you do not
59   have to be in the same session that executed the transaction.
60  </para>
61
62  <para>
63   This command cannot be executed inside a transaction block. The prepared
64   transaction is committed immediately.
65  </para>
66
67  <para>
68   All currently available prepared transactions are listed in the
69   <link linkend="view-pg-prepared-xacts"><structname>pg_prepared_xacts</structname></link>
70   system view.
71  </para>
72 </refsect1>
73
74 <refsect1 id="sql-commit-prepared-examples">
75  <title>Examples</title>
76  <para>
77   Commit the transaction identified by the transaction
78   identifier <literal>foobar</literal>:
79
80<programlisting>
81COMMIT PREPARED 'foobar';
82</programlisting></para>
83
84 </refsect1>
85
86 <refsect1>
87  <title>Compatibility</title>
88
89  <para>
90   <command>COMMIT PREPARED</command> is a
91   <productname>PostgreSQL</productname> extension.  It is intended for use by
92   external transaction management systems, some of which are covered by
93   standards (such as X/Open XA), but the SQL side of those systems is not
94   standardized.
95  </para>
96 </refsect1>
97
98 <refsect1>
99  <title>See Also</title>
100
101  <simplelist type="inline">
102   <member><xref linkend="sql-prepare-transaction"/></member>
103   <member><xref linkend="sql-rollback-prepared"/></member>
104  </simplelist>
105 </refsect1>
106
107</refentry>
108