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