Sobes.tech
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.