Senior
Aké typy transakcií poznáš? Na čo sú potrebné?
sobes.tech AI
Odpoveď od AI
V jazyku Go sú transakcie zvyčajne spojené s databázami a slúžia na zabezpečenie vlastností ACID (atomickosť, konzistencia, izolácia, trvácnosť).
Typy transakcií:
- Automatické transakcie — keď každá operácia sa vykonáva ako samostatná transakcia.
- Explicitné transakcie — keď vývojár explicitne začína, potvrdzuje alebo vracia transakciu pomocou metód
Begin(),Commit(),Rollback(). - Dlhodobé transakcie — používajú sa v distribuovaných systémoch, kde môže transakcia trvať dlho a vyžaduje koordináciu.
Prečo sú transakcie potrebné:
- Zabezpečujú, že skupina operácií bude vykonaná úplne alebo vôbec.
- Predchádzajú podmienkam súťaže a zabezpečujú integritu dát.
- Umožňujú vrátenie zmien pri chybách.
Príklad použitia transakcie v Go s databázou:
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)
}