Sobes.tech
Middle

Cos'è una transazione?

sobes.tech AI

Risposta dell'AI

Una transazione è una sequenza di operazioni che viene eseguita come un'unica unità. Nel contesto dei database, una transazione garantisce che tutte le operazioni al suo interno vengano completate con successo insieme, o in caso di errore, vengano annullate per non lasciare il sistema in uno stato incoerente. In Go, le transazioni sono spesso utilizzate con i database tramite il pacchetto database/sql.

Esempio di utilizzo di una transazione in Go:

// db — oggetto *sql.DB
ctx := context.Background()
tx, err := db.BeginTx(ctx, nil)
if err != nil {
    log.Fatal(err)
}

_, err = tx.ExecContext(ctx, "INSERT INTO users(name) VALUES(?)", "Alice")
if err != nil {
    tx.Rollback()
    log.Fatal(err)
}

err = tx.Commit()
if err != nil {
    log.Fatal(err)
}

Qui, le operazioni di inserimento vengono eseguite all'interno di una transazione, che viene o confermata o annullata in caso di errore.