Struct Transaction
pub struct Transaction<'c, DB>where
    DB: Database,{ /* private fields */ }Expand description
An in-progress database transaction or savepoint.
A transaction starts with a call to Pool::begin or Connection::begin.
A transaction should end with a call to commit or rollback. If neither are called
before the transaction goes out-of-scope, rollback is called. In other
words, rollback is called on drop if the transaction is still in-progress.
A savepoint is a special mark inside a transaction that allows all commands that are executed after it was established to be rolled back, restoring the transaction state to what it was at the time of the savepoint.
A transaction can be used as an Executor when performing queries:
let mut tx = conn.begin().await?;
let result = sqlx::query("DELETE FROM \"testcases\" WHERE id = $1")
    .bind(id)
    .execute(&mut *tx)
    .await?
    .rows_affected();
tx.commit().awaitImplementations§
Trait Implementations§
§impl<'c, 't, DB> Acquire<'t> for &'t mut Transaction<'c, DB>where
    DB: Database,
 
impl<'c, 't, DB> Acquire<'t> for &'t mut Transaction<'c, DB>where
    DB: Database,
type Database = DB
type Connection = &'t mut <DB as Database>::Connection
fn acquire( self, ) -> Pin<Box<dyn Future<Output = Result<<&'t mut Transaction<'c, DB> as Acquire<'t>>::Connection, Error>> + Send + 't>>
fn begin( self, ) -> Pin<Box<dyn Future<Output = Result<Transaction<'t, DB>, Error>> + Send + 't>>
§impl<'c, DB> AsMut<<DB as Database>::Connection> for Transaction<'c, DB>where
    DB: Database,
 
impl<'c, DB> AsMut<<DB as Database>::Connection> for Transaction<'c, DB>where
    DB: Database,
§fn as_mut(&mut self) -> &mut <DB as Database>::Connection
 
fn as_mut(&mut self) -> &mut <DB as Database>::Connection
Converts this type into a mutable reference of the (usually inferred) input type.
§impl<'c, DB> Debug for Transaction<'c, DB>where
    DB: Database,
 
impl<'c, DB> Debug for Transaction<'c, DB>where
    DB: Database,
§impl<'c, DB> Deref for Transaction<'c, DB>where
    DB: Database,
 
impl<'c, DB> Deref for Transaction<'c, DB>where
    DB: Database,
§type Target = <DB as Database>::Connection
 
type Target = <DB as Database>::Connection
The resulting type after dereferencing.
§fn deref(&self) -> &<Transaction<'c, DB> as Deref>::Target
 
fn deref(&self) -> &<Transaction<'c, DB> as Deref>::Target
Dereferences the value.
§impl<'c, DB> DerefMut for Transaction<'c, DB>where
    DB: Database,
 
impl<'c, DB> DerefMut for Transaction<'c, DB>where
    DB: Database,
§fn deref_mut(&mut self) -> &mut <Transaction<'c, DB> as Deref>::Target
 
fn deref_mut(&mut self) -> &mut <Transaction<'c, DB> as Deref>::Target
Mutably dereferences the value.
Auto Trait Implementations§
impl<'c, DB> Freeze for Transaction<'c, DB>
impl<'c, DB> !RefUnwindSafe for Transaction<'c, DB>
impl<'c, DB> Send for Transaction<'c, DB>
impl<'c, DB> Sync for Transaction<'c, DB>
impl<'c, DB> Unpin for Transaction<'c, DB>
impl<'c, DB> !UnwindSafe for Transaction<'c, DB>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
 
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
 
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more