Junior — Middle
როგორ შეიძლება ერთ ტრანზაქციაში ცვლილებები უკან დაბრუნდეს?
sobes.tech AI
პასუხი AI-სგან
Go ენაში ტრანზაქციებთან მუშაობისთვის ჩვეულებრივ გამოიყენება database/sql პაკეტი. ერთ ტრანზაქციის ფარგლებში განხორციელებული ცვლილებების გაუქმებისთვის საჭიროა ტრანზაქციის ობიექტის Rollback() მეთოდის გამოძახება. ეს ჩვეულებრივ ხდება შეცდომის შემთხვევაში, რათა გაუქმდეს ტრანზაქციის ფარგლებში განხორციელებული ყველა ცვლილება.
მაგალითი:
trx, err := db.Begin()
if err != nil {
// შეცდომის დამუშავება
}
// ოპერაციების განხორციელება ტრანზაქციაში
_, err = trx.Exec("INSERT INTO users(name) VALUES(?)", "John")
if err != nil {
trx.Rollback() // ტრანზაქციის გაუქმება შეცდომის დროს
return err
}
// თუ ყველაფერი წარმატებით დასრულდა, დაადასტურეთ ტრანზაქცია
err = trx.Commit()
if err != nil {
return err
}
ამ გზით, trx.Rollback() გამოძახება გაუქმებს მიმდინარე ტრანზაქციის ფარგლებში განხორციელებულ ყველა ცვლილებას.