Junior — Middle
Come si possono annullare le modifiche all'interno di una singola transazione?
sobes.tech AI
Risposta dell'AI
In Go, per lavorare con le transazioni si utilizza generalmente il pacchetto database/sql. Per annullare le modifiche all'interno di una transazione, è necessario chiamare il metodo Rollback() dell'oggetto transazione. Questo viene solitamente fatto in caso di errore, per annullare tutte le modifiche apportate durante la transazione.
Esempio:
tx, err := db.Begin()
if err != nil {
// gestione dell'errore
}
// Esecuzione di operazioni nella transazione
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "John")
if err != nil {
tx.Rollback() // annulla la transazione in caso di errore
return err
}
// Se tutto va bene, conferma la transazione
err = tx.Commit()
if err != nil {
return err
}
In questo modo, la chiamata a tx.Rollback() annulla tutte le modifiche fatte durante la transazione corrente.