RELEASE SAVEPOINT cockroach_restart


When using client-side transaction retries, the RELEASE SAVEPOINT cockroach_restart statement commits the transaction.

If statements in the transaction generated any non-retryable errors, RELEASE SAVEPOINT cockroach_restart is equivalent to ROLLBACK, which aborts the transaction and discards all updates made by its statements.

Despite committing the transaction, you must still issue a COMMIT statement to prepare the connection for the next transaction.

{{}}CockroachDB’s SAVEPOINT implementation only supports the cockroach_restart savepoint and does not support all savepoint functionality, such as nested transactions.{{}}


{% include {{ page.version.version }}/sql/diagrams/release_savepoint.html %}

Required privileges

No privileges are required to release a savepoint. However, privileges are required for each statement within a transaction.


Commit a Transaction

After declaring SAVEPOINT cockroach_restart, commit the transaction with RELEASE SAVEPOINT cockroach_restart and then prepare the connection for the next transaction with COMMIT.


> SAVEPOINT cockroach_restart;

> UPDATE products SET inventory = 0 WHERE sku = '8675309';

> INSERT INTO orders (customer, sku, status) VALUES (1001, '8675309', 'new');

> RELEASE SAVEPOINT cockroach_restart;


{{}}This example assumes you're using client-side intervention to handle transaction retries.{{}}

See also