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