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()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()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"))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(),
)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()const query = q
.select(q.c("users.id"))
.from(q.t("users"))
.semicolon()