diff options
Diffstat (limited to 'doc/src/sgml/ref/rollback_to.sgml')
| -rw-r--r-- | doc/src/sgml/ref/rollback_to.sgml | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/doc/src/sgml/ref/rollback_to.sgml b/doc/src/sgml/ref/rollback_to.sgml new file mode 100644 index 0000000000..e38c4f4c4f --- /dev/null +++ b/doc/src/sgml/ref/rollback_to.sgml @@ -0,0 +1,163 @@ +<!-- +$PostgreSQL: pgsql/doc/src/sgml/ref/rollback_to.sgml,v 1.1 2004/08/01 17:32:13 tgl Exp $ +PostgreSQL documentation +--> + +<refentry id="SQL-ROLLBACK-TO"> + <refmeta> + <refentrytitle id="SQL-ROLLBACK-TO-TITLE">ROLLBACK TO</refentrytitle> + <refmiscinfo>SQL - Language Statements</refmiscinfo> + </refmeta> + + <refnamediv> + <refname>ROLLBACK TO</refname> + <refpurpose>roll back to a savepoint</refpurpose> + </refnamediv> + + <indexterm zone="sql-rollback-to"> + <primary>ROLLBACK TO</primary> + </indexterm> + + <indexterm zone="sql-rollback-to"> + <primary>savepoints</primary> + <secondary>rolling back</secondary> + </indexterm> + + <refsynopsisdiv> +<synopsis> +ROLLBACK TO <replaceable>savepoint_name</replaceable> +</synopsis> + </refsynopsisdiv> + + <refsect1> + <title>Description</title> + + <para> + Roll back all commands that were executed after the savepoint was + established. The savepoint remains valid and can be rolled back to + again later, if needed. + </para> + + <para> + <command>ROLLBACK TO</> implicitly destroys all savepoints that + were established after the named savepoint. + </para> + </refsect1> + + <refsect1> + <title>Parameters</title> + + <variablelist> + <varlistentry> + <term><replaceable class="PARAMETER">savepoint_name</></term> + <listitem> + <para> + The savepoint to roll back to. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1> + <title>Notes</title> + + <para> + Use <xref linkend="SQL-RELEASE" endterm="SQL-RELEASE-TITLE"> to + destroy a savepoint without discarding the effects of commands executed + after it was established. + </para> + + <para> + Specifying a savepoint name that has not been established is an error. + </para> + + <para> + Cursors have somewhat non-transactional behavior with respect to + savepoints. Any cursor that is opened inside the savepoint is not closed + when the savepoint is rolled back. If a cursor is affected by a + <command>FETCH</> command inside a savepoint that is later rolled + back, the cursor position remains at the position that <command>FETCH</> + left it pointing to (that is, <command>FETCH</> is not rolled back). + A cursor whose execution causes a transaction to abort is put in a + can't-execute state, so while the transaction can be restored using + <command>ROLLBACK TO</>, the cursor can no longer be used. + </para> + </refsect1> + + <refsect1> + <title>Examples</title> + + <para> + To undo the effects of the commands executed after <literal>my_savepoint</literal> + was established: +<programlisting> +ROLLBACK TO my_savepoint; +</programlisting> + </para> + + <para> + Cursor positions are not affected by savepoint rollback: +<programlisting> +BEGIN; + +DECLARE foo CURSOR FOR SELECT 1 UNION SELECT 2; + +SAVEPOINT foo; + +FETCH 1 FROM foo; + ?column? +---------- + 1 + +ROLLBACK TO foo; + +FETCH 1 FROM foo; + ?column? +---------- + 2 + +COMMIT; +</programlisting> + </para> + + + </refsect1> + + <refsect1> + <title>Compatibility</title> + + <para> + This command is fully SQL standard conforming. + </para> + </refsect1> + + <refsect1> + <title>See Also</title> + + <simplelist type="inline"> + <member><xref linkend="sql-begin" endterm="sql-begin-title"></member> + <member><xref linkend="sql-commit" endterm="sql-commit-title"></member> + <member><xref linkend="sql-savepoint" endterm="sql-savepoint-title"></member> + <member><xref linkend="sql-release" endterm="sql-release-title"></member> + <member><xref linkend="sql-rollback" endterm="sql-rollback-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: +--> |
