Middle
Šta je transakcija?
sobes.tech АИ
Одговор од АИ
Transakcija je niz operacija koje se izvršavaju kao jedinstvena celina. U kontekstu baza podataka, transakcija garantuje da će sve operacije unutar nje biti uspešno završene zajedno, ili u slučaju greške, biti poništene kako sistem ne bi ostao u nekonzistentnom stanju. U Go-u, transakcije se često koriste sa bazama podataka putem paketa database/sql.
Primer korišćenja transakcije u Go-u:
// db — objekat *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)
}
Ovde, operacije umetanja se obavljaju u okviru transakcije, koja se ili potvrđuje ili poništava u slučaju greške.