Basics

Override: Transactions

Override query builder adds helpers for transaction statements and semicolon-terminated transaction flows.

Basics

Use beginTransaction, commitTransaction, androllbackTransaction to build transactional SQL quickly.

const query = q
  .beginTransaction()
  .select(q.c("users.id"))
  .from(q.t("users"))
  .commitTransaction()

Savepoints

Savepoint helpers emit SAVEPOINT, ROLLBACK TO, and RELEASE SAVEPOINT statements with semicolons.

const query = q
  .beginTransaction()
  .savepointTransaction(q.i("before_update"))
  .update(q.t("users"))
  .set({ status: q.v("active") })
  .rollbackToSavepointTransaction(q.i("before_update"))
  .releaseTransaction(q.i("before_update"))
  .commitTransaction()

Prepared

Prepared transaction helpers emit PREPARE TRANSACTION,COMMIT PREPARED, and ROLLBACK PREPARED.

const query = q
  .prepareTransaction(q.i("tx_jobs"))
  .commitPreparedTransaction(q.i("tx_jobs"))

Transaction Wrapper

transaction(...statements) wraps statements withBEGIN and COMMIT plus semicolons.

const query = q.transaction(
  q.select(q.c("users.id")).from(q.t("users")),
  q.update(q.t("users")).set({ status: q.v("active") }).semicolon(),
)

Semicolons

Use semicolon or its alias sc() to terminate statement segments explicitly.

const query = q
  .select(q.c("users.id"))
  .from(q.t("users"))
  .semicolon()