Middle
Kas yra sandoris?
sobes.tech AI
Atsakymas iš AI
Transakcija yra operacijų seka, kuri vykdoma kaip vienetas. Duomenų bazių kontekste, transakcija užtikrina, kad visos joje esančios operacijos bus sėkmingai užbaigtos kartu, arba, klaidos atveju, bus atšauktos, kad sistema liktų nuosekli. Go kalboje transakcijos dažnai naudojamos su duomenų bazėmis per database/sql paketą.
Pavyzdys, kaip naudoti transakciją Go:
// db — *sql.DB objektas
ctx := context.Background()
tx, err := db.BeginTx(ctx, nil)
if err != nil {
log.Fatal(err)
}
_, err = tx.ExecContext(ctx, "INSERT INTO users(name) VALUES(?)", "Alice")
if err != nil {
tx.Rollback()
log.Fatal(err)
}
err = tx.Commit()
if err != nil {
log.Fatal(err)
}
Čia, įterpimo operacijos vykdomos transakcijos rėmuose, kurios arba patvirtinamos, arba atšaukiamos klaidos atveju.