The representation of a Cloud Spanner transaction.
A transaction is a set of reads and writes that execute atomically at a single logical point in time across the columns/rows/tables in a database. Those reads and writes are grouped by passing them the same Transaction.
All reads/writes in the transaction must be executed within the same session, and that session may have only one transaction active at a time.
Spanner supports these transaction modes:
ReadOnly. Provides guaranteed consistency across several reads, but does not allow writes. Can be configured to read at timestamps in the past. Does not need to be committed and does not take locks.
ReadWrite. Supports reading and writing data at a single point in time. Uses pessimistic locking and, if necessary, two-phase commit. May abort, requiring the application to rerun.
SingleUse. A restricted form of a ReadOnly transaction where Spanner chooses the read timestamp.
Constructors
Transaction(ReadOnlyOptions)
Construction of read-only and read-write transactions.
Parameter
Name
Description
opts
ReadOnlyOptions
Transaction(ReadWriteOptions)
Construction of read-only and read-write transactions.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-22 UTC."],[[["\u003cp\u003eThis document outlines the Cloud Spanner \u003ccode\u003eTransaction\u003c/code\u003e class, which facilitates atomic execution of reads and writes across database elements.\u003c/p\u003e\n"],["\u003cp\u003eSpanner transactions operate within a single session, with only one active transaction per session allowed at any given time.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eTransaction\u003c/code\u003e class supports three modes: \u003ccode\u003eReadOnly\u003c/code\u003e for consistent reads, \u003ccode\u003eReadWrite\u003c/code\u003e for both reading and writing, and \u003ccode\u003eSingleUse\u003c/code\u003e for timestamp-determined reads.\u003c/p\u003e\n"],["\u003cp\u003eTransaction objects are created using constructors that include options for \u003ccode\u003eReadOnly\u003c/code\u003e or \u003ccode\u003eReadWrite\u003c/code\u003e modes, but it should be noted that the request to the server and thereby the transaction are only created on the first interaction with the server, such as during an \u003ccode\u003eExecuteQuery()\u003c/code\u003e call.\u003c/p\u003e\n"],["\u003cp\u003eThe class provides a list of versions available for Spanner \u003ccode\u003eTransaction\u003c/code\u003e class, ranging from the latest release candidate \u003ccode\u003e2.37.0-rc\u003c/code\u003e to version \u003ccode\u003e2.11.0\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,[]]