Sobes.tech
Junior — Middle

Jak można cofnąć zmiany w ramach jednej transakcji?

sobes.tech AI

Odpowiedź od AI

W Go, do pracy z transakcjami zwykle używa się pakietu database/sql. Aby cofnąć zmiany w ramach jednej transakcji, należy wywołać metodę Rollback() obiektu transakcji. Zazwyczaj robi się to w przypadku błędu, aby anulować wszystkie zmiany dokonane w ramach transakcji.

Przykład:

tx, err := db.Begin()
if err != nil {
    // obsługa błędu
}

// Wykonywanie operacji w transakcji
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "John")
if err != nil {
    tx.Rollback() // cofnięcie transakcji w przypadku błędu
    return err
}

// Jeśli wszystko się powiodło, zatwierdź transakcję
err = tx.Commit()
if err != nil {
    return err
}

W ten sposób wywołanie tx.Rollback() cofa wszystkie zmiany dokonane w ramach bieżącej transakcji.