---
name: "ROLLBACK_PREPARED"
section: "7"
platform: "linux"
package: "postgresql"
version: "18.6-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ROLLBACK_PREPARED"
---

# ROLLBACK\_PREPARED(7)

cancel a transaction that was earlier prepared for two-phase commit

## NAME

ROLLBACK\_PREPARED - cancel a transaction that was earlier prepared for two-phase commit

## SYNOPSIS

```
ROLLBACK PREPARED transaction_id
```

## DESCRIPTION

**ROLLBACK PREPARED** rolls back a transaction that is in prepared state.

## PARAMETERS

*transaction\_id*

The transaction identifier of the transaction that is to be rolled back.

## NOTES

To roll back a prepared transaction, you must be either the same user that executed the transaction originally, or a superuser. But you do not have to be in the same session that executed the transaction.

This command cannot be executed inside a transaction block. The prepared transaction is rolled back immediately.

All currently available prepared transactions are listed in the pg\_prepared\_xacts system view.

## EXAMPLES

Roll back the transaction identified by the transaction identifier foobar:

```
ROLLBACK PREPARED 'foobar';
```

## COMPATIBILITY

**ROLLBACK PREPARED** is a PostgreSQL extension. It is intended for use by external transaction management systems, some of which are covered by standards (such as X/Open XA), but the SQL side of those systems is not standardized.

## SEE ALSO

PREPARE TRANSACTION ([**PREPARE\_TRANSACTION**(7)](/PREPARE_TRANSACTION/7.md)), COMMIT PREPARED ([**COMMIT\_PREPARED**(7)](/COMMIT_PREPARED/7.md))
