================= ROLLBACK PREPARED ================= .. container:: refentry :name: SQL-ROLLBACK-PREPARED .. container:: titlepage .. container:: refnamediv .. rubric:: ROLLBACK PREPARED :name: rollback-prepared ROLLBACK PREPARED — 取消一个之前为两阶段提交准备好的事务 .. container:: refsynopsisdiv .. rubric:: 大纲 :name: 大纲 .. code:: synopsis ROLLBACK PREPARED transaction_id .. container:: refsect1 :name: id-1.9.3.167.5 .. rubric:: 描述 :name: 描述 ``ROLLBACK PREPARED``\ 回滚 一个处于准备好状态的事务。 .. container:: refsect1 :name: id-1.9.3.167.6 .. rubric:: 参数 :name: 参数 .. container:: variablelist *``transaction_id``* 要被回滚的事务的事务标识符。 .. container:: refsect1 :name: id-1.9.3.167.7 .. rubric:: 注解 :name: 注解 要回滚一个准备好的事务,你必须是原先执行该事务的同一个用户或者 是一个超级用户。但是你必须处在执行该事务的同一个会话中。 这个命令不能在一个事务块内被执行。准备好的事务会被立刻回滚。 ```pg_prepared_xacts`` `__ 系统视图中列出了当前可用的所有准备好的事务。 .. container:: refsect1 :name: SQL-ROLLBACK-PREPARED-EXAMPLES .. rubric:: 例子 :name: 例子 用事务标识符\ ``foobar``\ 回滚对应的事务: .. code:: programlisting ROLLBACK PREPARED 'foobar'; .. container:: refsect1 :name: id-1.9.3.167.9 .. rubric:: 兼容性 :name: 兼容性 ``ROLLBACK PREPARED``\ 是一种 PostgreSQL扩展。其意图是用于 外部事务管理系统,其中有些已经被标准涵盖(例如 X/Open XA), 但是那些系统的 SQL 方面未被标准化。 .. container:: refsect1 :name: id-1.9.3.167.10 .. rubric:: 另见 :name: 另见 `PREPARE TRANSACTION `__, `COMMIT PREPARED `__