Struct diesel::pg::TransactionBuilder[][src]

#[must_use = "Transaction builder does nothing unless you call `run` on it"]
pub struct TransactionBuilder<'a> { /* fields omitted */ }

Used to build a transaction, specifying additional details.

This struct is returned by .build_transaction. See the documentation for methods on this struct for usage examples. See the PostgreSQL documentation for SET TRANSACTION for details on the behavior of each option.

Methods

impl<'a> TransactionBuilder<'a>
[src]

Makes the transaction READ ONLY

Example

conn.build_transaction()
    .read_only()
    .run::<_, diesel::result::Error, _>(|| {
        let read_attempt = users.select(name).load::<String>(&conn);
        assert!(read_attempt.is_ok());

        let write_attempt = diesel::insert_into(users)
            .values(name.eq("Ruby"))
            .execute(&conn);
        assert!(write_attempt.is_err());

        Ok(())
    })?;

Makes the transaction READ WRITE

This is the default, unless you've changed the default_transaction_read_only configuration parameter.

Example

conn.build_transaction()
    .read_write()
    .run(|| {
        let read_attempt = users.select(name).load::<String>(&conn);
        assert!(read_attempt.is_ok());

        let write_attempt = diesel::insert_into(users)
            .values(name.eq("Ruby"))
            .execute(&conn);
        assert!(write_attempt.is_ok());

        Ok(())
    })

Makes the transaction DEFERRABLE

Example

conn.build_transaction()
    .deferrable()
    .run(|| Ok(()))

Makes the transaction NOT DEFERRABLE

This is the default, unless you've changed the default_transaction_deferrable configuration parameter.

Example

conn.build_transaction()
    .not_deferrable()
    .run(|| Ok(()))

Makes the transaction ISOLATION LEVEL READ COMMITTED

This is the default, unless you've changed the default_transaction_isolation_level configuration parameter.

Example

conn.build_transaction()
    .read_committed()
    .run(|| Ok(()))

Makes the transaction ISOLATION LEVEL REPEATABLE READ

Example

conn.build_transaction()
    .repeatable_read()
    .run(|| Ok(()))

Makes the transaction ISOLATION LEVEL SERIALIZABLE

Example

conn.build_transaction()
    .serializable()
    .run(|| Ok(()))

Runs the given function inside of the transaction with the parameters given to this builder.

Returns an error if the connection is already inside a transaction.

Trait Implementations

impl<'a> Clone for TransactionBuilder<'a>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<'a> Copy for TransactionBuilder<'a>
[src]

impl<'a> QueryFragment<Pg> for TransactionBuilder<'a>
[src]

Walk over this QueryFragment for all passes. Read more

Converts this QueryFragment to its SQL representation. Read more

Serializes all bind parameters in this query. Read more

Is this query safe to store in the prepared statement cache? Read more

Auto Trait Implementations

impl<'a> !Send for TransactionBuilder<'a>

impl<'a> !Sync for TransactionBuilder<'a>