bytes
Optional. Clients should pass the transaction
ID of the previous transaction attempt that was
aborted if this transaction is being executed on
a multiplexed session.
Classes
ReadLockMode
ReadLockMode(value)
ReadLockMode is used to set the read lock mode for read-write
transactions.
- If isolation level is
`REPEATABLE_READ][google.spanner.v1.TransactionOptions.IsolationLevel.REPEATABLE_READ]`,
then it is an error to specify `read_lock_mode`.
Locking semantics default to `OPTIMISTIC`. No
validation checks are done for reads, except to validate
that the data that was served at the snapshot time is
unchanged at commit time in the following cases:
1. reads done as part of queries that use
`SELECT FOR UPDATE`
2. reads done as part of statements with a
`LOCK_SCANNED_RANGES` hint
3. reads done as part of DML statements
- At all other isolation levels, if `read_lock_mode` is
the default value, then pessimistic read locks are used.
PESSIMISTIC (1):
Pessimistic lock mode.
Read locks are acquired immediately on read. Semantics
described only applies to
`SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE]`
isolation.
OPTIMISTIC (2):
Optimistic lock mode.
Locks for reads within the transaction are not acquired on
read. Instead the locks are acquired on a commit to validate
that read/queried data has not changed since the transaction
started. Semantics described only applies to
`SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE]`
isolation.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# Class ReadWrite (3.57.0)\n\nVersion latestkeyboard_arrow_down\n\n- [3.57.0 (latest)](/python/docs/reference/spanner/latest/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.56.0](/python/docs/reference/spanner/3.56.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.55.0](/python/docs/reference/spanner/3.55.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.54.0](/python/docs/reference/spanner/3.54.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.53.0](/python/docs/reference/spanner/3.53.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.52.0](/python/docs/reference/spanner/3.52.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.51.0](/python/docs/reference/spanner/3.51.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.50.1](/python/docs/reference/spanner/3.50.1/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.46.0](/python/docs/reference/spanner/3.46.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.45.0](/python/docs/reference/spanner/3.45.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.44.0](/python/docs/reference/spanner/3.44.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.43.0](/python/docs/reference/spanner/3.43.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.42.0](/python/docs/reference/spanner/3.42.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.41.0](/python/docs/reference/spanner/3.41.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.40.1](/python/docs/reference/spanner/3.40.1/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.39.0](/python/docs/reference/spanner/3.39.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.38.0](/python/docs/reference/spanner/3.38.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.37.0](/python/docs/reference/spanner/3.37.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.36.0](/python/docs/reference/spanner/3.36.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.35.1](/python/docs/reference/spanner/3.35.1/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.34.0](/python/docs/reference/spanner/3.34.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.33.0](/python/docs/reference/spanner/3.33.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.32.0](/python/docs/reference/spanner/3.32.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.31.0](/python/docs/reference/spanner/3.31.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.30.0](/python/docs/reference/spanner/3.30.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.29.0](/python/docs/reference/spanner/3.29.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.28.0](/python/docs/reference/spanner/3.28.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.27.1](/python/docs/reference/spanner/3.27.1/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.26.0](/python/docs/reference/spanner/3.26.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.25.0](/python/docs/reference/spanner/3.25.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.24.0](/python/docs/reference/spanner/3.24.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.23.0](/python/docs/reference/spanner/3.23.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.22.2](/python/docs/reference/spanner/3.22.2/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.21.0](/python/docs/reference/spanner/3.21.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.20.0](/python/docs/reference/spanner/3.20.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.19.0](/python/docs/reference/spanner/3.19.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.18.0](/python/docs/reference/spanner/3.18.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.17.0](/python/docs/reference/spanner/3.17.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.16.0](/python/docs/reference/spanner/3.16.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.15.1](/python/docs/reference/spanner/3.15.1/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.14.1](/python/docs/reference/spanner/3.14.1/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.13.0](/python/docs/reference/spanner/3.13.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.12.1](/python/docs/reference/spanner/3.12.1/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.11.1](/python/docs/reference/spanner/3.11.1/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.10.0](/python/docs/reference/spanner/3.10.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.9.0](/python/docs/reference/spanner/3.9.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.8.0](/python/docs/reference/spanner/3.8.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.7.0](/python/docs/reference/spanner/3.7.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.6.0](/python/docs/reference/spanner/3.6.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.5.0](/python/docs/reference/spanner/3.5.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.4.0](/python/docs/reference/spanner/3.4.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.3.0](/python/docs/reference/spanner/3.3.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.2.0](/python/docs/reference/spanner/3.2.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.1.0](/python/docs/reference/spanner/3.1.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [3.0.0](/python/docs/reference/spanner/3.0.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [2.1.1](/python/docs/reference/spanner/2.1.1/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [2.0.0](/python/docs/reference/spanner/2.0.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [1.19.3](/python/docs/reference/spanner/1.19.3/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [1.18.0](/python/docs/reference/spanner/1.18.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [1.17.1](/python/docs/reference/spanner/1.17.1/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [1.16.0](/python/docs/reference/spanner/1.16.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [1.15.1](/python/docs/reference/spanner/1.15.1/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [1.14.0](/python/docs/reference/spanner/1.14.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [1.13.0](/python/docs/reference/spanner/1.13.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [1.12.0](/python/docs/reference/spanner/1.12.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [1.11.0](/python/docs/reference/spanner/1.11.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite)\n- [1.10.0](/python/docs/reference/spanner/1.10.0/google.cloud.spanner_v1.types.TransactionOptions.ReadWrite) \n\n ReadWrite(mapping=None, *, ignore_unknown_fields=False, **kwargs)\n\nMessage type to initiate a read-write transaction. Currently\nthis transaction type has no options.\n\nClasses\n-------\n\n### ReadLockMode\n\n ReadLockMode(value)\n\n`ReadLockMode` is used to set the read lock mode for read-write\ntransactions. \n\n - If isolation level is\n `REPEATABLE_READ][google.spanner.v1.TransactionOptions.IsolationLevel.REPEATABLE_READ]`,\n then it is an error to specify `read_lock_mode`.\n Locking semantics default to `OPTIMISTIC`. No\n validation checks are done for reads, except to validate\n that the data that was served at the snapshot time is\n unchanged at commit time in the following cases:\n\n 1. reads done as part of queries that use\n `SELECT FOR UPDATE`\n 2. reads done as part of statements with a\n `LOCK_SCANNED_RANGES` hint\n 3. reads done as part of DML statements\n\n - At all other isolation levels, if `read_lock_mode` is\n the default value, then pessimistic read locks are used.\n PESSIMISTIC (1):\n Pessimistic lock mode.\n\n Read locks are acquired immediately on read. Semantics\n described only applies to\n `SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE]`\n isolation.\n OPTIMISTIC (2):\n Optimistic lock mode.\n\n Locks for reads within the transaction are not acquired on\n read. Instead the locks are acquired on a commit to validate\n that read/queried data has not changed since the transaction\n started. Semantics described only applies to\n `SERIALIZABLE][google.spanner.v1.TransactionOptions.IsolationLevel.SERIALIZABLE]`\n isolation."]]