Sobes.tech
Middle

Co je to transakce?

sobes.tech AI

Odpověď od AI

Transakce je sled operací, která se provádí jako jedna celek. V kontextu databází zaručuje transakce, že všechny operace uvnitř ní budou úspěšně dokončeny společně, nebo v případě chyby budou vráceny, aby systém nezůstal v nekonzistentním stavu. V Go se transakce často používají s databázemi přes balíček database/sql.

Příklad použití transakce 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)
}

Zde jsou operace vkládání prováděny v rámci transakce, která je buď potvrzena, nebo vrácena v případě chyby.