pub struct Transaction<'c, DB>where
DB: Database,{ /* private fields */ }Expand description
SQLx re-exports for other projects 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§
Source§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>>
Source§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,
Source§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.
Source§impl<'c, DB> Debug for Transaction<'c, DB>where
DB: Database,
impl<'c, DB> Debug for Transaction<'c, DB>where
DB: Database,
Source§impl<'c, DB> Deref for Transaction<'c, DB>where
DB: Database,
impl<'c, DB> Deref for Transaction<'c, DB>where
DB: Database,
Source§impl<'c, DB> DerefMut for Transaction<'c, DB>where
DB: Database,
impl<'c, DB> DerefMut for Transaction<'c, DB>where
DB: Database,
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
Source§impl<K, V, T> Expiry<K, V> for T
impl<K, V, T> Expiry<K, V> for T
Source§fn expire_after_create(
&self,
key: &K,
value: &V,
created_at: Instant,
) -> Option<Duration>
fn expire_after_create( &self, key: &K, value: &V, created_at: Instant, ) -> Option<Duration>
Specifies that the entry should be automatically removed from the cache once
the duration has elapsed after the entry’s creation. This method is called
for cache write methods such as
insert and get_with but only when the key
was not present in the cache. Read moreSource§fn expire_after_read(
&self,
key: &K,
value: &V,
read_at: Instant,
duration_until_expiry: Option<Duration>,
last_modified_at: Instant,
) -> Option<Duration>
fn expire_after_read( &self, key: &K, value: &V, read_at: Instant, duration_until_expiry: Option<Duration>, last_modified_at: Instant, ) -> Option<Duration>
Specifies that the entry should be automatically removed from the cache once
the duration has elapsed after its last read. This method is called for cache
read methods such as
get and get_with but only when the key is present in
the cache. Read moreSource§fn expire_after_update(
&self,
key: &K,
value: &V,
updated_at: Instant,
duration_until_expiry: Option<Duration>,
) -> Option<Duration>
fn expire_after_update( &self, key: &K, value: &V, updated_at: Instant, duration_until_expiry: Option<Duration>, ) -> Option<Duration>
Specifies that the entry should be automatically removed from the cache once
the duration has elapsed after the replacement of its value. This method is
called for cache write methods such as
insert but only when the key is
already present in the cache. Read moreSource§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreCreates a shared type from an unshared type.