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