Sobes.tech
Middle

Какво е транзакция?

sobes.tech AI

Отговор от AI

Транзакцията е последователност от операции, която се изпълнява като единна цялост. В контекста на базите данни, транзакцията гарантира, че всички операции вътре в нея ще бъдат успешно завършени заедно, или при грешка ще бъдат отменени, за да не оставят системата в несъгласувано състояние. В Go транзакциите често се използват с бази данни чрез пакета database/sql.

Пример за използване на транзакция в Go:

// db — обект *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)
}

Тук операциите по добавяне се изпълняват в рамките на транзакция, която или се потвърждава, или се отменя при грешка.