Senior
Quali tipi di transazioni conosci? A cosa servono?
sobes.tech AI
Risposta dell'AI
In Go, le transazioni sono generalmente associate ai database e vengono utilizzate per garantire atomicità, coerenza, isolamento e durabilità (ACID).
Tipi di transazioni:
- Transazioni automatiche — ogni operazione viene eseguita come una transazione separata.
- Transazioni esplicite — lo sviluppatore avvia, conferma o annulla esplicitamente una transazione usando i metodi
Begin(),Commit(),Rollback(). - Transazioni di lunga durata — usate in sistemi distribuiti, dove la transazione può durare a lungo e richiede coordinamento.
A cosa servono le transazioni:
- Garantire che un gruppo di operazioni venga completato interamente o non venga eseguito affatto.
- Prevenire condizioni di gara e garantire l'integrità dei dati.
- Permettere di annullare le modifiche in caso di errori.
Esempio di utilizzo di una transazione in Go con un database:
tx, err := db.Begin()
if err != nil {
log.Fatal(err)
}
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "Alice")
if err != nil {
tx.Rollback()
log.Fatal(err)
}
err = tx.Commit()
if err != nil {
log.Fatal(err)
}