COMMIT statement commits the current transaction or, when using client-side transaction retries, clears the connection to allow new transactions to begin.
When using client-side transaction retries, statements issued after
SAVEPOINT cockroach_restart are committed when
RELEASE SAVEPOINT cockroach_restart is issued instead of
COMMIT. However, you must still issue a
COMMIT statement to clear the connection for the next transaction.
For non-retryable transactions, if statements in the transaction generated any errors,
COMMIT is equivalent to
ROLLBACK, which aborts the transaction and discards all updates made by its statements.
No privileges are required to commit a transaction. However, privileges are required for each statement within a transaction.
END is an alias for the
Commit a Transaction
How you commit transactions depends on how your application handles transaction retries.
Client-Side Retryable Transactions
When using client-side transaction retries, statements are committed by
RELEASE SAVEPOINT cockroach_restart.
COMMIT itself only clears the connection for the next transaction.
> 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;
Automatically Retried Transactions
If you are using transactions that CockroachDB will automatically retry (i.e., all statements sent in a single batch), commit the transaction with
> BEGIN; UPDATE products SET inventory = 100 WHERE = '8675309'; UPDATE products SET inventory = 100 WHERE = '8675310'; COMMIT;