On this page
The SET TRANSACTION
statement sets the transaction priority after you BEGIN
it but before executing the first statement that manipulates a database.
Synopsis
Required privileges
No privileges are required to set the transaction priority. However, privileges are required for each statement within a transaction.
Parameters
Parameter | Description |
---|---|
PRIORITY |
If you do not want the transaction to run with NORMAL priority, you can set it to LOW or HIGH .Transactions with higher priority are less likely to need to be retried. For more information, see Transactions: Priorities. The current priority is also exposed as the session variable transaction_priority .Default: NORMAL |
READ |
Set the transaction access mode to READ ONLY or READ WRITE . The current transaction access mode is also exposed as the session variable transaction_read_only .Default: READ WRITE |
New in v2.1: CockroachDB now only supports SERIALIZABLE
isolation, so transactions can no longer be meaningfully set to any other ISOLATION LEVEL
. In previous versions of CockroachDB, you could set transactions to SNAPSHOT
isolation, but that feature has been removed.
Examples
Set priority
Warning:
This example assumes you're using client-side intervention to handle transaction retries.> BEGIN;
> SET TRANSACTION PRIORITY HIGH;
> 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;