Sobes.tech
Middle
13

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

Компании, где спрашивали
VKVK

Ответ от нейросети

sobes.tech 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)
}

Здесь операции вставки выполняются в рамках транзакции, которая либо коммитится, либо откатывается при ошибке.