Junior — Middle
Баъд аз анҷоми як транзаксия, ки чӣ қадар амалҳо иҷозат дода мешавад?
sobes.tech AI
Ҷавоб аз AI
Дар Go (Golang) максималони шумораи амалиёт дар як транзаксия аз ҷониби забон ё китобхонаи стандартӣ маҳдуд нашудааст. Маҳдудиятҳо вобаста ба базаи додаҳо ва драйвери истифодашаванда мебошанд. Масалан, дар транзаксияҳои SQL, шумо метавонед бисёр амалиётро иҷро кунед, то он даме ки захираҳо тамом нашаванд ё лимити базаи додаҳо гузашта шавад.
Муҳим аст, ки ба ёд оред, ки транзаксияҳои хеле дароз метавонад ба бастаниҳо ва кам шудани иҷроиш оварда расонад. Аз ин рӯ, тавсия дода мешавад, ки транзаксияҳоро кӯтоҳ ва бо мантиқ пайваст нигоҳ доред.
Масалан, истифодаи транзаксия дар Go бо базаи додаҳо:
trx, err := db.Begin()
if err != nil {
log.Fatal(err)
}
_, err = trx.Exec("INSERT INTO users(name) VALUES(?)", "Alice")
if err != nil {
trx.Rollback()
log.Fatal(err)
}
_, err = trx.Exec("UPDATE accounts SET balance = balance - ? WHERE user_id = ?", 100, 1)
if err != nil {
trx.Rollback()
log.Fatal(err)
}
err = trx.Commit()
if err != nil {
log.Fatal(err)
}
Ин ҷо, шумо метавонед ҳар қадар амалиётро илова кунед, ки онҳо мантиқан пайваст бошанд ва маҳдудиятҳои базаи додаҳоро надоштанд.