The SAVEPOINT cockroach_restart statement defines the intent to retry transactions using the CockroachDB-provided function for client-side transaction retries. For more information, see Transaction Retries.

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

Synopsis

SAVEPOINT name

Required privileges

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

Example

After you BEGIN the transaction, you must create the savepoint to identify that if the transaction contends with another transaction for resources and "loses", you intend to use the function for client-side transaction retries:

copy
icon/buttons/copy
> BEGIN;
copy
icon/buttons/copy
> SAVEPOINT cockroach_restart;
copy
icon/buttons/copy
> UPDATE products SET inventory = 0 WHERE sku = '8675309';
copy
icon/buttons/copy
> INSERT INTO orders (customer, sku, status) VALUES (1001, '8675309', 'new');
copy
icon/buttons/copy
> RELEASE SAVEPOINT cockroach_restart;
copy
icon/buttons/copy
> COMMIT;

When using SAVEPOINT, an application must also include functions to execute retries with ROLLBACK TO SAVEPOINT cockroach_restart.

See also



Yes No