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
}