Junior — Middle
Bir tranzaksiya doirasida o'zgarishlarni qanday bekor qilish mumkin?
sobes.tech AI
AIdan javob
Go tilida, tranzaksiyalar bilan ishlash uchun odatda database/sql paketi ishlatiladi. Bir tranzaksiya doirasida o'zgarishlarni bekor qilish uchun, tranzaksiya obyekti Rollback() metodini chaqirish kerak. Bu odatda xato yuzaga kelganda, tranzaksiya davomida amalga oshirilgan barcha o'zgarishlarni bekor qilish uchun qilinadi.
Misol:
tx, err := db.Begin()
if err != nil {
// xato bilan ishlash
}
// Tranzaksiyada operatsiyalarni bajarish
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "John")
if err != nil {
tx.Rollback() // xato yuzaga kelganda tranzaksiyani bekor qilish
return err
}
// Agar hammasi muvaffaqiyatli bo'lsa, tranzaksiyani tasdiqlash
err = tx.Commit()
if err != nil {
return err
}
Shu tarzda, tx.Rollback() chaqiruvi, joriy tranzaksiya doirasida amalga oshirilgan barcha o'zgarishlarni bekor qiladi.