fix: set transaction mode in single command (#2450)
This commit is contained in:
parent
7dffaf1f20
commit
525ec30905
@ -275,18 +275,19 @@ pub(crate) async fn set_transaction_config(
|
||||
isolation_level: Option<IsolationLevel>,
|
||||
access_mode: Option<AccessMode>,
|
||||
) -> Result<(), DbErr> {
|
||||
let mut settings = Vec::new();
|
||||
|
||||
if let Some(isolation_level) = isolation_level {
|
||||
let stmt = Statement {
|
||||
sql: format!("SET TRANSACTION ISOLATION LEVEL {isolation_level}"),
|
||||
values: None,
|
||||
db_backend: DbBackend::MySql,
|
||||
};
|
||||
let query = sqlx_query(&stmt);
|
||||
conn.execute(query).await.map_err(sqlx_error_to_exec_err)?;
|
||||
settings.push(format!("ISOLATION LEVEL {isolation_level}"));
|
||||
}
|
||||
|
||||
if let Some(access_mode) = access_mode {
|
||||
settings.push(access_mode.to_string());
|
||||
}
|
||||
|
||||
if !settings.is_empty() {
|
||||
let stmt = Statement {
|
||||
sql: format!("SET TRANSACTION {access_mode}"),
|
||||
sql: format!("SET TRANSACTION {}", settings.join(", ")),
|
||||
values: None,
|
||||
db_backend: DbBackend::MySql,
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user