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.