Middle
Mi az a tranzakció?
sobes.tech MI
Válasz az MI-től
Egy tranzakció egy műveletsorozat, amely egységként hajtódik végre. Az adatbázisok kontextusában a tranzakció garantálja, hogy minden benne lévő művelet sikeresen befejeződik együtt, vagy hiba esetén visszavonásra kerül, hogy ne hagyja a rendszert inkonzisztens állapotban. Go-ban a tranzakciókat gyakran használják adatbázisokkal a database/sql csomagon keresztül.
Példa tranzakció használatára Go-ban:
// db — *sql.DB objektum
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)
}
Itt az insert műveletek egy tranzakció keretében történnek, amely vagy megerősítésre vagy visszavonásra kerül hiba esetén.