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.