<!-- doc/src/sgml/ref/commit.sgml PostgreSQL documentation --> <refentry id="SQL-COMMIT"> <refmeta> <refentrytitle>COMMIT</refentrytitle> <manvolnum>7</manvolnum> <refmiscinfo>SQL - Language Statements</refmiscinfo> </refmeta> <refnamediv> <refname>COMMIT</refname> <refpurpose>commit the current transaction</refpurpose> </refnamediv> <indexterm zone="sql-commit"> <primary>COMMIT</primary> </indexterm> <refsynopsisdiv> <synopsis> COMMIT [ WORK | TRANSACTION ] </synopsis> </refsynopsisdiv> <refsect1> <title>Description</title> <para> <command>COMMIT</command> commits the current transaction. All changes made by the transaction become visible to others and are guaranteed to be durable if a crash occurs. </para> </refsect1> <refsect1> <title>Parameters</title> <variablelist> <varlistentry> <term><literal>WORK</literal></term> <term><literal>TRANSACTION</literal></term> <listitem> <para> Optional key words. They have no effect. </para> </listitem> </varlistentry> </variablelist> </refsect1> <refsect1> <title>Notes</title> <para> Use <xref linkend="SQL-ROLLBACK"> to abort a transaction. </para> <para> Issuing <command>COMMIT</> when not inside a transaction does no harm, but it will provoke a warning message. </para> </refsect1> <refsect1> <title>Examples</title> <para> To commit the current transaction and make all changes permanent: <programlisting> COMMIT; </programlisting></para> </refsect1> <refsect1> <title>Compatibility</title> <para> The SQL standard only specifies the two forms <literal>COMMIT</literal> and <literal>COMMIT WORK</literal>. Otherwise, this command is fully conforming. </para> </refsect1> <refsect1> <title>See Also</title> <simplelist type="inline"> <member><xref linkend="sql-begin"></member> <member><xref linkend="sql-rollback"></member> </simplelist> </refsect1> </refentry>