Sobes.tech
Middle

Čo je transakcia?

sobes.tech AI

Odpoveď od AI

Transakcia je sled operácií, ktorá sa vykonáva ako jedna celok. V kontexte databáz zaručuje transakcia, že všetky operácie v nej budú úspešne dokončené spoločne, alebo v prípade chyby budú vrátené, aby systém nezostal v nekonzistentnom stave. V Go sa transakcie často používajú s databázami cez balík database/sql.

Príklad použitia transakcie v Go:

// db — objekt *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)
}

Tu sa operácie vkladania vykonávajú v rámci transakcie, ktorá sa buď potvrdí, alebo v prípade chyby zruší.