--- 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)