Sobes.tech
Junior — Middle

Hogyan lehet visszavonni a változtatásokat egy tranzakción belül?

sobes.tech MI

Válasz az MI-től

Go nyelvben a tranzakciókkal való munkához általában a database/sql csomagot használják. Egy tranzakción belüli változtatások visszavonásához meg kell hívni a tranzakció objektumának Rollback() metódusát. Ez általában hibás esetben történik, hogy minden, a tranzakció során végrehajtott változtatást visszavonjon.

Példa:

trx, err := db.Begin()
if err != nil {
    // hibakezelés
}

// Műveletek végrehajtása a tranzakcióban
_, err = trx.Exec("INSERT INTO users(name) VALUES(?)", "John")
if err != nil {
    trx.Rollback() // tranzakció visszavonása hiba esetén
    return err
}

// Ha minden sikeres, erősítse meg a tranzakciót
err = trx.Commit()
if err != nil {
    return err
}

Így a trx.Rollback() hívás visszavon minden, a jelenlegi tranzakció keretében végrehajtott változtatást.