Junior — Middle
Kaip galima atšaukti pakeitimus vienos operacijos metu?
sobes.tech AI
Atsakymas iš AI
Go kalboje dažniausiai naudojamas database/sql paketas darbui su transakcijomis. Norint atšaukti pakeitimus per vieną transakciją, reikia iškviesti Rollback() metodo objektą. Tai dažniausiai daroma klaidos atveju, kad būtų atšaukti visi pakeitimai, padaryti per transakciją.
Pavyzdys:
trx, err := db.Begin()
if err != nil {
// klaidos apdorojimas
}
// Operacijų vykdymas transakcijoje
_, err = trx.Exec("INSERT INTO users(name) VALUES(?)", "John")
if err != nil {
trx.Rollback() // transakcijos atšaukimas klaidos atveju
return err
}
// Jei viskas pavyko, patvirtinkite transakciją
err = trx.Commit()
if err != nil {
return err
}
Taip, iškvietus trx.Rollback(), bus atšaukti visi pakeitimai, padaryti per šią transakciją.