Sobes.tech
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.