Back to top
  Back to overview

BEGIN statement

Each statement within SurrealDB is run within its own transaction. If a set of changes need to be made together, then groups of statements can be run together as a single transaction, either succeeding as a whole, or failing without leaving any residual data modifications.

The BEGIN TRANSACTION statement can be used to run a group of statements together, either succeeding as a whole, or failing. If all of the statements within a transaction succeed, and the transaction is successful, then all of the data modifications made during the transaction are committed and become a permanent part of the database. If a transaction encounters errors and must be cancelled or rolled back, then any data modification made within the transaction is rolledback, and will not be visible within the database.

Statement syntax

BEGIN [ TRANSACTION ];

Example usage

The following query shows example usage of this statement.

BEGIN TRANSACTION;
-- Setup accounts
CREATE account:one SET balance = 135,605.16;
CREATE account:two SET balance = 91,031.31;
-- Move money
UPDATE account:one SET balance += 300.00;
UPDATE account:two SET balance -= 300.00;
-- Finalise
COMMIT TRANSACTION;