Junior — Middle
Ako možno v rámci jednej transakcie vrátiť zmeny?
sobes.tech AI
Odpoveď od AI
V jazyku Go sa zvyčajne na prácu s transakciami používa balíček database/sql. Na zrušenie zmien v rámci jednej transakcie je potrebné zavolať metódu Rollback() objektu transakcie. To sa zvyčajne robí v prípade chyby, aby sa zrušili všetky zmeny vykonané v rámci transakcie.
Príklad:
tx, err := db.Begin()
if err != nil {
// spracovanie chyby
}
// Vykonanie operácií v transakcii
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "John")
if err != nil {
tx.Rollback() // zrušenie transakcie pri chybe
return err
}
// Ak je všetko úspešné, potvrďte transakciu
err = tx.Commit()
if err != nil {
return err
}
Týmto spôsobom volanie tx.Rollback() zruší všetky zmeny vykonané v aktuálnej transakcii.