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.
SAVEPOINT
implementation only supports the cockroach_restart
savepoint and does not support all savepoint functionality, such as nested transactions.Synopsis
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:
> BEGIN;
> 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;
> COMMIT;
When using SAVEPOINT
, an application must also include functions to execute retries with ROLLBACK TO SAVEPOINT cockroach_restart
.