Struct libsql_client::transaction::Transaction
source · pub struct Transaction<'a, Client: DatabaseClient + ?Sized> { /* private fields */ }
Implementations§
source§impl<'a, Client: DatabaseClient + ?Sized> Transaction<'a, Client>
impl<'a, Client: DatabaseClient + ?Sized> Transaction<'a, Client>
sourcepub async fn new(client: &'a Client) -> Result<Transaction<'a, Client>>
pub async fn new(client: &'a Client) -> Result<Transaction<'a, Client>>
Creates a new transaction.
sourcepub async fn execute(&mut self, stmt: Statement) -> Result<StmtResult>
pub async fn execute(&mut self, stmt: Statement) -> Result<StmtResult>
Executes a statement within the current transaction.
Example
let mut db = libsql_client::new_client().await?;
let mut tx = db.transaction().await?;
tx.execute(Statement::with_params("INSERT INTO users (name) VALUES (?)", params!["John"])).await?;
let res = tx.execute(Statement::with_params("INSERT INTO users (name) VALUES (?)", params!["Jane"])).await;
if res.is_err() {
tx.rollback().await?;
} else {
tx.commit().await?;
}