## ROLLBACK

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 transaction is immediately started with the same transaction characteristics (see [SET TRANSACTION](sql-set-transaction.html)) as the just finished one. Otherwise, no new transaction is started.

## Notes

 Use [`COMMIT`](sql-commit.html) 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.html), [COMMIT](sql-commit.html), [ROLLBACK TO SAVEPOINT](sql-rollback-to.html)

