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

В Go для работы с транзакциями в базе данных обычно используется пакет database/sql.

Короткий ответ

Что ответить на собеседовании

В Go для работы с транзакциями в базе данных обычно используется пакет database/sql. Чтобы инициировать новую транзакцию, вызывают метод Begin() у объекта sql.DB. Этот метод возвращает объект sql.Tx, который представляет транзакцию. После этого с помощью методов Commit() или Rollback() можно зафиксировать или отменить транзакцию.

Подробный разбор

Ответ с пояснениями

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее