Sobes.tech
Middle

Czym jest transakcja?

sobes.tech AI

Odpowiedź od AI

Transakcja to sekwencja operacji wykonywanych jako jedna całość. W kontekście baz danych, transakcja gwarantuje, że wszystkie operacje w jej ramach zakończą się sukcesem razem, lub w przypadku błędu, zostaną wycofane, aby nie pozostawić systemu w niespójnym stanie. W Go transakcje często są używane z bazami danych za pomocą pakietu database/sql.

Przykład użycia transakcji w Go:

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

Operacje wstawiania wykonywane są w ramach transakcji, która albo jest zatwierdzana, albo wycofywana w przypadku błędu.