COMMIT
Prev | Up | SQL Commands | Home | Next

## COMMIT

COMMIT — commit the current transaction

## Synopsis

    COMMIT [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]

## Description

`COMMIT` commits the current transaction. All changes made by the transaction become visible to others and are guaranteed to be durable if a crash occurs.

If the transaction is in an aborted state then no changes will be made and the effect of the `COMMIT` will be identical to that of `ROLLBACK`, including the command tag output.

In either case, if the `AND CHAIN` parameter is specified then a new, identically configured, transaction is started.

For more information regarding transactions see Section 3.4.

## 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) as the just finished one. Otherwise, no new transaction is started.

## Outputs

On successful completion of a non-aborted transaction, a `COMMIT` command returns a command tag of the form

    COMMIT

However, in an aborted transaction, a `COMMIT` command returns a command tag of the form

    ROLLBACK

## Notes

Use ROLLBACK to abort a transaction.

Issuing `COMMIT` when not inside a transaction does no harm, but it will provoke a warning message. `COMMIT AND CHAIN` when not inside a transaction is an error.

## Examples

To commit the current transaction and make all changes permanent:

    COMMIT;

## Compatibility

The command `COMMIT` conforms to the SQL standard, except that no exception condition is raised in the case where the transaction was already aborted.

The form `COMMIT TRANSACTION` is a PostgreSQL extension.

## See Also

BEGIN, ROLLBACK, Section 3.4

Prev | Up | Next
COMMENT | Home | COMMIT PREPARED