Sobes.tech
Назад к вопросам
Junior — Middle
74

Каким образом инициировать новую транзакцию в системе управления базой данных?

Компании, где спрашивали
МТС DigitalМТС Digital

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

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() // фиксация транзакции
}