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