Назад к вопросам
МТС Digital
Junior — Middle
74
Каким образом инициировать новую транзакцию в системе управления базой данных?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Go для работы с транзакциями в базе данных обычно используется пакет database/sql. Чтобы инициировать новую транзакцию, вызывают метод Begin() у объекта *sql.DB. Этот метод возвращает объект *sql.Tx, который представляет транзакцию. После этого с помощью методов Commit() или Rollback() можно зафиксировать или отменить транзакцию.
Пример:
import (
"database/sql"
_ "github.com/lib/pq" // драйвер для PostgreSQL
)
func example(db *sql.DB) error {
tx, err := db.Begin()
if err != nil {
return err
}
// Выполнение операций в рамках транзакции
_, err = tx.Exec("INSERT INTO users(name) VALUES($1)", "Alice")
if err != nil {
tx.Rollback() // отмена транзакции при ошибке
return err
}
return tx.Commit() // фиксация транзакции
}