Sobes.tech
Junior — Middle

Cum se pot anula modificările în cadrul unei singure tranzacții?

sobes.tech AI

Răspuns de la AI

În Go, pentru lucrul cu tranzacțiile, de obicei se folosește pachetul database/sql. Pentru a anula modificările în cadrul unei tranzacții, trebuie să apelați metoda Rollback() a obiectului de tranzacție. Acest lucru se face de obicei în caz de eroare, pentru a anula toate modificările făcute în cadrul tranzacției.

Exemplu:

trx, err := db.Begin()
if err != nil {
    // tratarea erorii
}

// Executarea operațiilor în tranzacție
_, err = trx.Exec("INSERT INTO users(name) VALUES(?)", "John")
if err != nil {
    trx.Rollback() // anularea tranzacției în caz de eroare
    return err
}

// Dacă totul a decurs cu succes, confirmați tranzacția
err = trx.Commit()
if err != nil {
    return err
}

Astfel, apelul trx.Rollback() anulează toate modificările făcute în cadrul tranzacției curente.