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.
SAVEPOINTimplementation only supports the
cockroach_restartsavepoint and does not support all savepoint functionality, such as nested transactions.
No privileges are required to create a savepoint. However, privileges are required for each statement within a transaction.
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;
SAVEPOINT, your application must also include functions to execute retries with
ROLLBACK TO cockroach_restart.