---
title: "ROLLBACK"
id: sql-rollback
pg_version: "20devel"
---
# ROLLBACK — abort the current transaction
## Synopsis
```
ROLLBACK [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]
```
## Description
`ROLLBACK` rolls back the current transaction and causes all the updates made by the transaction to be discarded.
## Parameters
**`WORK`**, **`TRANSACTION`**
Optional key words. They have no effect.
**`AND CHAIN`**
If `AND CHAIN` is specified, a new (not aborted) transaction is immediately started with the same transaction characteristics (see [SET TRANSACTION](sql-set-transaction.md)) as the just finished one. Otherwise, no new transaction is started.
## Notes
Use [`COMMIT`](sql-commit.md) to successfully terminate a transaction.
Issuing `ROLLBACK` outside of a transaction block emits a warning and otherwise has no effect. `ROLLBACK AND CHAIN` outside of a transaction block is an error.
## Examples
To abort all changes:
ROLLBACK;
## Compatibility
The command `ROLLBACK` conforms to the SQL standard. The form `ROLLBACK TRANSACTION` is a PostgreSQL extension.
## See Also
[BEGIN](sql-begin.md), [COMMIT](sql-commit.md), [ROLLBACK TO SAVEPOINT](sql-rollback-to.md)