Sobes.tech
Junior — Middle

Ma'lumotlar bazasi boshqaruv tizimida yangi tranzaktsiyani qanday boshlash mumkin?

sobes.tech AI

AIdan javob

Go'da ma'lumotlar bazasida tranzaktsiyalar bilan ishlash uchun odatda database/sql paketi ishlatiladi. Yangi tranzaktsiyani boshlash uchun *sql.DB obyekti ustida Begin() metodini chaqirishadi. Bu metod *sql.Tx obyekti bilan qaytadi, u tranzaktsiyani ifodalaydi. So'ngra, Commit() yoki Rollback() metodlari yordamida tranzaktsiya tasdiqlanishi yoki bekor qilinishi mumkin.

Misol:

import (
    "database/sql"
    _ "github.com/lib/pq" // PostgreSQL uchun drayver
)

func misol(db *sql.DB) error {
    tx, err := db.Begin()
    if err != nil {
        return err
    }

    // Tranzaksiya doirasida operatsiyalarni bajarish
    _, err = tx.Exec("INSERT INTO users(name) VALUES($1)", "Alice")
    if err != nil {
        tx.Rollback() // Xatolik yuzaga kelganda tranzaktsiyani bekor qilish
        return err
    }

    return tx.Commit() // Tranzaktsiyani tasdiqlash
}