Function tx_insert

Source
pub async fn tx_insert<T>(
    transaction: Transaction<'_>,
    entity: T,
) -> Result<(Transaction<'_>, u64), Error>
where T: SqlQuery<T> + SqlParams + Send + Sync + 'static,
Expand description

Inserts a record within a transaction.

This function executes an INSERT SQL query within the given transaction. It returns the transaction object, allowing for method chaining.

§Arguments

  • transaction - An active transaction
  • entity - Data object to be inserted (must implement SqlQuery and SqlParams traits)

§Return Value

  • Result<(Transaction<'_>, u64), Error> - On success, returns the transaction and the number of affected rows; on failure, returns Error

§Example

#[derive(Insertable, SqlParams)]
#[table("users")]
struct InsertUser {
    name: String,
    email: String,
}

let user = InsertUser {
    name: "John".to_string(),
    email: "john@example.com".to_string(),
};

let transaction = transactional::begin(&client).await?;
let (transaction, rows_affected) = transactional::tx_insert(transaction, user).await?;
transaction.commit().await?;